什么是jQuery Unobtrusivevalidation?

我知道jQueryvalidation插件是什么。 我知道jQuery Unobtrusive Validation库是由Microsoft制作的,并包含在ASP.NET MVC框架中。 但是我找不到一个解释它是什么的在线资源。 标准jQueryvalidation库和“不显眼”版本有什么区别?

Brad Wilson有几篇关于不显眼的validation和不显眼的ajax的文章 。
在“AJAX和JavaScript”一节中,它在这个Pluralsightvideo中也显示得非常好。

基本上,它只是简单的Javascriptvalidation,不污染你的源代码与自己的validation码。 这是通过使用HTML中的data-属性来完成的。

用不显眼的方式:

  • 你不必调用validate()方法。
  • 您可以使用数据属性(data-val,data-val-required等)指定需求

jqueryvalidation示例

 <input type="text" name="email" class="required"> <script> $(function () { $("form").validate(); }); </script> 

Jqueryvalidation不显眼的例子

 <input type="text" name="email" data-val="true" data-val-required="This field is required."> <div class="validation-summary-valid" data-valmsg-summary="true"> <ul><li style="display:none"></li></ul> </div> 

澄清,这里是一个更详细的例子演示使用jQuery Validation Unobtrusive表单validation。

两者都使用jQuery的以下JavaScript:

  $("#commentForm").validate({ submitHandler: function(form) { // some other code // maybe disabling submit button // then: alert("This is a valid form!"); // form.submit(); } }); 

两个插件之间的主要区别是每种方法使用的属性。

jQueryvalidation

只需使用以下属性:

  • 必要时设置
  • 设置适当的格式(电子邮件等)
  • 设置其他属性,如大小(最小长度等)

这是表格…

 <form id="commentForm"> <label for="form-name">Name (required, at least 2 characters)</label> <input id="form-name" type="text" name="form-name" class="form-control" minlength="2" required> <input type="submit" value="Submit"> </form> 

jQueryvalidation不显眼

以下数据属性是必需的:

  • data-msg-required =“这是必需的。”
  • 数据规则需要=“真/假”

这是表格…

 <form id="commentForm"> <label for="form-x-name">Name (required, at least 2 characters)</label> <input id="form-x-name" type="text" name="name" minlength="2" class="form-control" data-msg-required="Name is required." data-rule-required="true"> <input type="submit" value="Submit"> </form> 

基于这些例子中的任何一个,如果所需的表单字段已被填充,并且满足附加的属性标准,则会popup消息通知所有表单字段被validation。 否则,会在违规表单字段附近显示错误的文本。

参考: – jQueryvalidation: https : //jqueryvalidation.org/documentation/

jQueryvalidationUnobtrusive Native是ASP.Net MVC HTML助手扩展的集合。 这些使用jQueryvalidation的原生支持由HTML 5数据属性驱动的validation。 Microsoft将jquery.validate.unobtrusive.js发回MVC 3.它提供了一种使用jQuery Validation和HTML 5数据属性(即“不显眼”部分)将数据模型validation应用于客户端的方法。