根据动态选择选项值更改文本框值

时间:2017-03-16 08:58:26

标签: javascript php

我有一个填充了mysql数据的表。我想根据下拉列表的值更改文本框值。我所做的只是第一行更改其值,但下一行不起作用。 以下是我的代码。

//this is inside while loop
<input type='text' name='qqty[]' value='<?php echo $avail; ?>' id="avail" class='form-control1' readonly = 'readonly'>

<select class="form-control1" name="qty[]" id="sType"  onChange="check();">
        <option value="<?php echo $avail;?>"><?php echo $Uconv;?></option>
        <option value="<?php echo $qty;?>"><?php echo $uom;?></option>
</select>

//my javascript code
<script>
function check() {
   document.getElementById("avail").value = document.getElementById("sType").value;
}
</script>

4 个答案:

答案 0 :(得分:3)

您必须为每个输入提供单独的ID,然后找到它。假设你的迭代变量是new

object

答案 1 :(得分:0)

如果你在循环中有这个代码,你有多个具有相同id(avail等)的元素。当你执行getElementById时,它将仅返回具有该id的第一个元素AKA,即第一行。

你应该在每个元素中添加唯一的id,比如说,在循环中添加一个递增的整数,如下所示:

<?php
for ($x = 0; $x <= 10; $x++) {
    ?>
        <input type='text' name='qqty[]' value='<?php echo $avail; ?>' id="avail_<?php echo $x; ?>" class='form-control1' readonly = 'readonly'>
        <select class="form-control1" name="qty[]" id="sType_<?php echo $x; ?>"  onChange="check('<?php echo $x; ?>');">
            <option value="<?php echo $avail;?>"><?php echo $Uconv;?></option>
            <option value="<?php echo $qty;?>"><?php echo $uom;?></option>
        </select>
    <?php
}
?>
<script>
function check(i) {
    document.getElementById("avail_"+i).value = document.getElementById("sType_"+i).value;
}
</script>

答案 2 :(得分:0)

尝试这种方式:

<select onchange="ChooseContact(this)">
    <option value='1'>1</option>
    <option value='2'>2</option>
</select>

<input id="friendName">

function ChooseContact(data) {

    document.getElementById ("friendName").value = data.value;

}

答案 3 :(得分:-1)

您正在通过id引用第一行元素。 您需要更改每行的ID,并根据您编辑的行更改值。