jQuery只从循环中获取第一个id值


jQuery get only first id value from the loop

我的代码是:

<input id='edit' type='checkbox' />
while($rs = mysql_fetch_array($query_fetch)) 
    {        
       echo "     
       <input type='text' name='qty' id='qty' value='".$sum[0]."' disabled>
       "; 
    }
<script>
document.getElementById('edit').onchange = function() {
    document.getElementById('qty').disabled = !this.checked;
};
</script>

问题是,当选中复选框时,只会影响循环的第一行。我希望当复选框被选中时,所有的输入都被启用。

要在jQuery中执行此操作,请更改:

<input type='text' name='qty' id='qty' value='".$sum[0]."' disabled>

收件人:

<input type='text' name='qty' class='qty' value='".$sum[0]."' disabled>

并添加以下代码:

$('#edit').click(function() {
    if ($(this).prop('checked')) {
        $('.qty').prop('disabled', false);
    } else {
        $('.qty').prop('disabled', true);
    }
});

注意:DOM对象ID应该是唯一的。任何两个元素都不应该有相同的ID。您可以将相同的类分配给多个元素,并用javascript进行标识。此外,如果这些input元素是您计划在服务器端处理的表单元素,则需要对它们进行不同的命名,否则只能使用最后分配的值。

第一件事你不需要为那么多元素使用id。。。id对于每个元素都是唯一的。。。在这里你可以使用class=数量。

可以使用jquery 获取类值

$('.qty').eq(0).val();

但是,如果你想使用id,那么你可以将任何计数器变量(i)连接到id

  echo "     
   <input type='text' name='qty"+i+"' id='qty' value='".$sum[0]."' disabled>
   "; 

在jQuery中执行此操作:

在文本字段中添加类条目:

<input type='text' class='qty' name='qty' id='qty' value='".$sum[0]."' disabled>

然后使用jquery

$( "#edit" ).click(function() {
     $( ".qty" ).each(function( index ) {
          if ($("#edit").is(':checked')) {
              $( this ).prop('disabled', false);
          } else {
              $( this ).prop('disabled', true);
          }
     });
 });