如果另一个td显示特定文本,如何选中和禁用复选框

时间:2012-04-26 06:42:25

标签: jquery checkbox

我是Jquery的新手,非常感谢任何帮助。

我的表有很多行,其中一些是错误:

        <td>
            Error:
           <input name="[0].ValidationResult" type="hidden" value="Error:" />
        </td>

        <td>
            <input data-val="true" data-val-required="The isChecked field is required." name="[0].isChecked" type="checkbox" value="true" /><input name="[0].isChecked" type="hidden" value="false" />
        </td>

我想弄清楚与错误:

在同一行中禁用复选框

感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

这个逻辑在服务器上完成,但如果由于某种原因你需要用javascript:

$(':hidden[value="Error:"]')
    .closest('tr')
    .find('td :checkbox')
    .attr('disabled', 'disabled')
    .attr('checked', 'checked');

如评论部分所述,如果您使用的是jQuery 1.6+,则应使用.prop()方法代替.attr

$(':hidden[value="Error:"]')
    .closest('tr')
    .find('td :checkbox')
    .prop('disabled', true)
    .prop('checked', true);

答案 1 :(得分:0)

一种方法是将包含错误的单元格赋予特定类,并在jQuery选择器中使用该类。

<td class="errorTd>
     Error:
     <input name="[0].ValidationResult" type="hidden" value="Error:" />
</td>

<td>
    <input data-val="true" data-val-required="The isChecked field is required." name="[0].isChecked" type="checkbox" value="true" /><input name="[0].isChecked" type="hidden" value="false" />
</td>

现在,您可以在class =&#34; errorTd&#34;的单元格中禁用输入像这样:

$('.errorTd input').attr('disabled', 'disabled');