我正在开发一个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">
我该如何进行价值检查?
答案 0 :(得分:2)
您.yesNoNotApplicableTextbox
是输入,所以当您这样做时:
$(".yesNoNotApplicableTextbox input[type='text']")
您选择.yesNoNotApplicableTextbox
的子输入。试试这个:
$("input.yesNoNotApplicableTextbox[type='text']")