使用jQuery检查相应隐藏/显示的文本框的值

时间:2013-06-18 14:09:15

标签: jquery asp.net-mvc-3 razor

我正在开发一个asp.net mvc3应用程序。在我的剃刀视图中,我将文本框设置为:

@Html.TextBoxFor(x => Model[i].FieldValue, new { @class = "yesNoNotApplicableTextbox", style = "display: none;" })

最初它是隐藏的。有条件必须打击才能显示出来。我这样表明:

$('.YesNoNotApplicable').change(function () {
    if ($(this).val() === '2') {
        $(this).closest('td').next('td').find('input').show();
    }
    else {
        $(this).closest('td').next('td').find('input').hide();
    }
});

简单来说,.YesNoNotApplicable是下拉列表,如果选择了某个值,那么我会显示文本框。

表单的所有这一部分,并且在提交时我想检查文本框的值(我还没有考虑如何检查它是否显示或隐藏我想先实现检查)所以我这样做:

 $(".yesNoNotApplicableTextbox input[type='text']").each(function () {
            if ($(this).val().trim().length < 1) {
                $(this).focus();
                throw "Please insert text!";
            }
        });

但无论我是否从下拉列表中选择正确的值,使文本框可见,或者不执行检查。文本框为空,但我没有收到错误。

以下是此文本框隐藏时生成的HTML:

<input class="yesNoNotApplicableTextbox" type="text" value="" style="display: none;" name="[14].FieldValue">

然后当我展示它时:

<input class="yesNoNotApplicableTextbox" type="text" value="" style="" name="[14].FieldValue">

我该如何进行价值检查?

1 个答案:

答案 0 :(得分:2)

.yesNoNotApplicableTextbox是输入,所以当您这样做时:

$(".yesNoNotApplicableTextbox input[type='text']")

您选择.yesNoNotApplicableTextbox的子输入。试试这个:

$("input.yesNoNotApplicableTextbox[type='text']")