我的代码是:
<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);
}
});
});