我遇到问题,让asp.net mvc客户端验证工作我想要它.
我有它基本上工作,但是,直到用户单击提交按钮,验证摘要才会显示,即使个人输入被突出显示为无效的用户选项卡/点击等方式通过窗体.这正在客户端发生.
这是设计的这个行为吗?有没有办法,因为我想要一旦发现其中一个输入字段无效,就会显示验证摘要.
我的代码基本上是,
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script> ... @using (Html.BeginForm()) { @Html.ValidationSummary(false) @Html.EditorFor(model => model); ...
而我的_Layout.cshtml引用了jquery-1.4.4.min.js.
此外,这是我在StackOverflow上的第一个问题 – 我希望我已经做到了.
解决方法
您可以将验证摘要设置为更频繁地被触发,即:
var validator = $('form').data('validator'); validator.settings.showErrors = function (map,errors) { this.defaultShowErrors(); this.checkForm(); if (this.errorList.length) $(this.currentForm).triggerHandler("invalid-form",[this]); else $(this.currentForm).resetSummary(); } }
这是上面使用的resetSummary:
jQuery.fn.resetSummary = function () { var form = this.is('form') ? this : this.closest('form'); form.find("[data-valmsg-summary=true]") .removeClass("validation-summary-errors") .addClass("validation-summary-valid") .find("ul") .empty(); return this; };