用于激活输入的复选框可以正常工作,但如果输入行重复,则行为很奇怪

时间:2012-03-16 21:30:06

标签: javascript jquery checkbox

这是一个jsFiddle链接:

http://jsfiddle.net/HunEj/

所以你可以点击复选框,然后它会启用旁边的字段。但是如果你选中一个,那么检查下一个(确实启用了字段),然后取消选中其中一个,它什么都不做。

显然这是因为我编写jQuery的方式。复制后的复选框具有相同的类名。它正在检查是否已检查。但我无法弄清楚如何重新编写它,以便它只检查我点击的是否被检查,而不是任何其他的。

有什么想法吗?

JS:

$('table input.activate').click(function(e) {
    if ($(this + ':checked').length > 0) {
        $(this).parent().parent().find('input.input-mini, input.input-small, select.input-mini').attr('disabled', false);
    } else {
        $(this).parent().parent().find('input.input-mini, input.input-small, select.input-mini').attr('disabled', true);
    }
});

1 个答案:

答案 0 :(得分:1)

这有效:

$('table input.activate').click(function(e) {
    var inputs = $(this).parent().parent()
           .find('input.input-mini, input.input-small, select.input-mini');
    if (this.checked) {
        inputs.attr('disabled', false);
    } else {
        inputs.attr('disabled', true);
    }
});
​