我想要什么
我想在我的视图中使用我选择的事件触发客户端验证。它可能是“onblur”也许另一个按钮,但除了提交按钮。
相关链接
How to trigger validation without using a submit button
Applying unobtrusive jquery validation to dynamic content in ASP.Net MVC
我试过的
给了一个各种事件侦听器,我已经解雇了以下方法没有运气:
$(selector).validate();
$(selector).valid();
$ .validator.unobtrusive.parseDynamicContent(selector);
$ .validator.unobtrusive.parse($(selector));
概要
所以我需要客户端验证来触发一个给定的事件(而不是提交),并显示相应的验证消息。我不觉得像任何的Markup / Razor语法是必要的,因为客户端验证触发提交和所有相应的验证消息显示为预期。
解决方法
$(‘form’)。valid()应该工作。让我们举例说明。
模型:
public class Myviewmodel { [required] public string Foo { get; set; } }
控制器:
public class HomeController : Controller { public ActionResult Index() { return View(new Myviewmodel()); } }
视图:
@model Myviewmodel <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.LabelFor(x => x.Foo) @Html.EditorFor(x => x.Foo) @Html.ValidationMessageFor(x => x.Foo) } <div id="validate">Hover here to trigger validation</div> <script type="text/javascript"> $('#validate').hover(function () { $('form').valid(); }); </script>