如何在选中复选框时禁用文本框,并在复选框在数组中的每行上没有检查时启用它。
这是我的代码。
<tr>
<td colspan="1" width=""><?php echo $item_name;?></td>
<td colspan="" width="15%" ><input type="checkbox" name="check_approved[]" value="Checked"></td>
<td colspan="" width="10%" ><input type="text" class="form-control" name="remarks[]" required></td>
</tr>
答案 0 :(得分:1)
将类和 id 属性赋予它们,然后根据选中的未选中条件隐藏显示文本框。
请尝试以下代码:
这是你的HTML:
render
这是你的js代码:
<td colspan="" width="15%" ><input type="checkbox" class=".txtcheck" name="check_approved[]" value="Checked"></td>
<td colspan="" width="10%" ><input type="text" class="form-control" id="txtbox" name="remarks[]" required></td>
答案 1 :(得分:1)
您可以轻松地遍历父母以找到孩子,而无需更改您在表单html中已有的内容。
JSFiddle: https://jsfiddle.net/9cgntpzf/
$(document).ready(function(){
// This will listen for changes on the checkbox
$("input[name=check_approved\\[\\]]").on('change',function(){
// This will then traverse upwards to the "tr", then find from the children
// the corresponding "remarks" input
var remarks = $(this).parents('tr').find('input[name=remarks\\[\\]]');
// This enables or disables the text box
remarks.attr('disabled',$(this).is(':checked'));
});
一个注意事项,我假设您的示例是表中的众多示例之一,这就是为什么我给出了解决问题的一般方法。如果您的网页上只有一个实例,则使用唯一的id
会更直接。