禁用第二个文本框

时间:2013-05-23 10:45:15

标签: jquery html-table

我有一个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"); }
});

如何更改以禁用示例中的第一个文本框?因此,当取消选中时,两个文本框都被禁用,如果再次检查它们,则两个文本框都被启用。

2 个答案:

答案 0 :(得分:4)

您可以定位tr而不是td:

DEMO

$('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);
});

Demo

注意:使用[type="text"][type="checkbox"]比使用:text:checkbox更快,因为前者利用本机CSS选择器。 See performance test