@Scripts
<script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")"></script>
@View
@using (Html.BeginForm("TestModelState", "RandD", FormMethod.Post, new {id="form123" }))
{
@Html.TextBoxFor(x => x.htmlText, new { style="display:none"})<br />
@Html.ValidationMessageFor(x => x.htmlText)
<div>
@Html.TextBoxFor(x => x.Uprop1)<br />
@Html.ValidationMessageFor(x => x.Uprop1)
</div>
<input type="submit" value-="Submit" onclick="abc()" />
}
我尝试了什么
var validateMeta = $('#form123')。validate(); validateMeta.settings.ignore =“”;
$.validator.setDefaults({ignore: ""});
$.validator.setDefaults({ ignore: [] });
答案 0 :(得分:38)
我遇到了同样的问题。页面上的隐藏字段存储用户ID,该用户ID是从自动填充文本框中选择的。此ID已进行验证,以确保回发非零ID。我们希望在客户端包含此验证。
默认情况下,jQuery validate忽略隐藏字段,宽度和高度为零的元素,css display:none和任何具有不可见父元素的元素(使用相同的标准)。
然后可以通过添加以下脚本来覆盖忽略设置(我在调用$ .validator.addMethod()之前将其添加到我的自定义验证器脚本中):
// By default validator ignores hidden fields.
// change the setting here to ignore nothing
$.validator.setDefaults({ ignore: null });
注意:如果代码在document ready
或jQuery $(function () {})
方法中运行,则该代码无法正常工作。
答案 1 :(得分:11)
在插入验证脚本之后,将ignore设置为“”:
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
<script type="text/javascript">
$.validator.setDefaults({
ignore: ""
});
</script>
}
答案 2 :(得分:5)
我不确定为什么您需要显示用户无法查看或编辑的字段的验证。但你可以试试这个。将display:none
和visibility:hidden
应用于输入字段,而不是height:0
。
@using (Html.BeginForm("TestModelState", "RandD", FormMethod.Post, new {id="form123" }))
{
@Html.TextBoxFor(x => x.htmlText, new { style="visibility:hidden;height:0"})<br />
@Html.ValidationMessageFor(x => x.htmlText)
<div>
@Html.TextBoxFor(x => x.Uprop1)<br />
@Html.ValidationMessageFor(x => x.Uprop1)
</div>
<input type="submit" value-="Submit" onclick="abc()" />
}
答案 3 :(得分:5)
尝试
var validator = $("#form-id").data('validator');
validator.settings.ignore = "";
答案 4 :(得分:0)
var validator = $("#form-id").data("validator");
validator.settings.ignore = ""; /* Set validator to ignore nothing. */
validator.form(); /* Validates the form, returns true if it is valid, false otherwise. */
console.log(validator.valid());
console.log(validator.errorList);