0

我正在开发一个 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">

如何执行值检查?

4

1 回答 1

2

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

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

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

$("input.yesNoNotApplicableTextbox[type='text']")
于 2013-06-18T14:14:40.330 回答