我的代码是:
<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>
问题是当选中复选框时,只会影响循环的第一行。我想在选中复选框时启用所有输入。
答案 0 :(得分:1)
要在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
元素是您计划处理服务器端的表单元素,则需要对它们进行不同的命名,或者只分配最后指定的值。
答案 1 :(得分:0)
在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);
}
});
});
答案 2 :(得分:0)
首先,你没有使用id那么多的元素... id对于每个元素都是唯一的... 在这里你可以使用class = qty。
您可以使用jquery
获取类值$('.qty').eq(0).val();
如果你想使用id,你可以将任何计数器变量(i)连接到id
echo "
<input type='text' name='qty"+i+"' id='qty' value='".$sum[0]."' disabled>
";