JQuery查找下一项按类

时间:2012-11-30 05:45:59

标签: jquery asp.net-mvc

我在文本输入旁边有一堆单选按钮。当一个单选按钮状态改变时,我运行一个方法,获取所有单选按钮的类“.IdPassportRadioButton”。对于每个单选按钮,我想找到下一个文本输入,并根据单选按钮启用或禁用该输入。

HTML如下所示:

<div class="editor-container" style="">
        <div class="editor-label">
            <%=Html.RadioButtonFor(m => m.IsPassport, false, 
                                        new { @class = "IdPassportRadioButton" })%>
            ID Number
        </div>
        <div class="editor-field">
            <%=Html.TextBoxFor(m => m.IdentityNumber, 
                                   new { @class = "textbox IdPassportTextBox"})%>
        </div>
    </div>

JQuery方法:

$(".IdPassportRadioButton").each(function() {
        if ($(this).is(":checked")) {
            $(this).next(".IdPassportTextBox").removeAttr("disabled");
        } else {
            $(this).next(".IdPassportTextBox").attr("disabled", "disabled");
            }
    });

正如您所看到的,我尝试按类“.IdPassportTextBox”找到下一个TextBox,但这不起作用。除了获取下一个文本框的行之外,一切正常。

任何建议

2 个答案:

答案 0 :(得分:1)

您可以使用带有选择器"editor-container"的{​​{3}}来使用类IdPassportTextBox访问parent of TextBox并使用closest()使用选择器".IdPassportTextBox"方法访问文本框。< / p>

$(".IdPassportRadioButton").each(function() {
    if ($(this).is(":checked")) {
        $(this).closest(".editor-container").find(".IdPassportTextBox").removeAttr("disabled");
    } else {
        $(this).closest(".editor-container").find(".IdPassportTextBox").attr("disabled", "disabled");
        }
});

答案 1 :(得分:1)

使用jQuery'.Parent()'方法获取封闭的'editor-container',然后选择'IdPassportTextbox'。