复选框更改父tr和其中包含的输入

时间:2009-08-06 10:18:26

标签: jquery parent siblings

不确定解释这个问题的最佳方法......我有一个输入,你可以输入两次,但如果你想省略某一天,也有一个复选框,因此输入有点无用,所以我会喜欢禁用它们......

这就是我目前对HTML的重复(重复7次):

<td><div>From:</div><input type="text" name="F_MON"></td>
<td><div>To:</div><input type="text" name="T_MON"></td>
<td class="unavailableday"><input type="checkbox" name="MON_UNAVAIL" value="Y"> Unavailable?</td>

然后是Javascript:

$("tr td input[type=checkbox]").bind("click", function() {
    var $this = $(this);
    if($this.is(':checked')) {
        $this.parents('tr').css({'background-color' : 'lightyellow'});
        $this.parents('tr input').siblings('input type=[text]').attr("disabled", true);
    }
});

不幸的是,当你选中这个框时,相应的tr会变黄,这是完美的,但之前的输入不会禁用...我还想做一个.unmask()并更改.val()时他们是残疾人,有点希望如果我能让父母/兄弟姐妹做对,那就很容易适应:o

谢谢!

1 个答案:

答案 0 :(得分:2)

尝试

$("tr td :checkbox").bind("click", function() {
    var $this = $(this);
    if($this.is(':checked')) {
        var $row = $this.closest('tr');
        $row.css('background-color', 'lightyellow');
        $this.siblings(':text').attr("disabled", "disabled");
    }
});