我有几个输入分成不同的容器(面板)。我遇到的问题是,如果这些面板之一被隐藏(style="display:none;"
),jQuery.validate 插件不会验证这些输入。
我用一个小例子进行了测试,出现了同样的问题:
view:
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Fields</legend>
<div class="UserName" style="display:none;">
<div class="editor-label"> @Html.LabelFor(model => model.UserName) </div>
<div class="editor-field">
@Html.TextBoxFor(model => model.UserName) @Html.ValidationMessageFor(model => model.UserName)
</div>
</div>
<div class="editor-label"> @Html.LabelFor(model => model.FirstName) </div>
<div class="editor-field">
@Html.TextBoxFor(model => model.FirstName) @Html.ValidationMessageFor(model => model.FirstName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.LastName)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.LastName) @Html.ValidationMessageFor(model => model.LastName)
</div>
<div class="editor-label"> @Html.LabelFor(model => model.City) </div>
<div class="editor-field">
@Html.TextBoxFor(model => model.City) @Html.ValidationMessageFor(model => model.City)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
Model:
public class UserModel {
[Required]
[StringLength(6, MinimumLength = 3)]
[Display(Name = "User Name")]
[RegularExpression(@"(\S)+", ErrorMessage = "White space is not allowed")]
[ScaffoldColumn(false)]
public string UserName { get; set; }
[Required]
[StringLength(8, MinimumLength = 3)]
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Required]
[StringLength(9, MinimumLength = 2)]
[Display(Name = "Last Name")]
public string LastName { get; set; }
[Required()]
public string City { get; set; }
}
当“UserName”属性位于带有 style 的 div 内部时,客户端不会对其进行验证"display:none;"
谢谢
它的期望行为是不验证隐藏的输入字段,使用 jquery 验证插件,您可以通过设置忽略选项来验证隐藏的输入字段,例如
$('#fromID').validate({
ignore: "",
});
但由于您在使用 jquery validate 插件的 mvc3 中使用不引人注目的验证,因此您无法自己初始化插件,因此您必须在初始化后更改其设置,例如
var validatorSettings = $.data($('form')[0], 'validator').settings;
validatorSettings.ignore = "";
参考 https://stackoverflow.com/questions/8565135/jquery-validate-v-1-9-ignores-some-hidden-inputs
这也是一篇有用的博文 http://blog.waynebrantley.com/2011/01/mvc3-validates-hidden-fields-using.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)