我的代码是:
<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
元素是您计划在服务器端处理的表单元素,您将需要以不同的方式命名它们,否则只有最后分配的值可用。
关于javascript - jQuery 仅从循环中获取第一个 id 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25700929/