我有一个jQuery脚本(如下所示),如下所示:http://jsfiddle.net/rLT3b/1/
$('input[type=checkbox]').click(function() {
if(this.checked == true) {
$(this).closest('td').next().find('input').val("1").removeAttr("disabled"); }
else {
$(this).closest('td').next().find('input').val("0").attr("disabled", "disabled"); }
});
如何更改以禁用示例中的第一个文本框?因此,当取消选中时,两个文本框都被禁用,如果再次检查它们,则两个文本框都被启用。
答案 0 :(得分:4)
您可以定位tr而不是td:
$('input[type=checkbox]').click(function() {
if(this.checked == true) {
$(this).closest('tr').find('input:not(:checkbox)').prop('disabled',false); }
else {
$(this).closest('tr').find('input:not(:checkbox)').prop('disabled',true); }
});
答案 1 :(得分:1)
在DOM上方向上移动一步,然后找到文本输入并切换“禁用”属性:
$('input[type="checkbox"]').click(function () {
$(this).closest('tr').find('input[type="text"]').prop('disabled', !this.checked);
});
注意:使用[type="text"]
或[type="checkbox"]
比使用:text
或:checkbox
更快,因为前者利用本机CSS选择器。 See performance test