我知道jQuery Validation插件是什么。我知道jQuery Unobtrusive Validation库是由Microsoft制作的,并且包含在ASP.NET MVC框架中。但我找不到一个解释它是什么的在线资源。标准jQuery验证库和“不显眼”版本之间有什么区别?
答案 0 :(得分:118)
基本上,只是Javascript验证不会使用自己的验证代码污染您的源代码。这是通过在HTML中使用data-
属性来完成的。
答案 1 :(得分:98)
以不引人注目的方式:
Jquery验证示例:
<input type="text" name="email" class="required">
<script>
$(function () {
$("form").validate();
});
</script>
Jquery验证不引人注意的示例:
<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>
答案 2 :(得分:17)
为了澄清,这里有一个更详细的例子,演示了使用jQuery Validation Unobtrusive进行表单验证。
两者都使用以下JavaScript和jQuery:
$("#commentForm").validate({
submitHandler: function(form) {
// some other code
// maybe disabling submit button
// then:
alert("This is a valid form!");
// form.submit();
}
});
两个插件之间的主要区别是每种方法使用的属性。
jQuery验证
只需使用以下属性:
这是表格......
<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>
jQuery验证不引人注意
需要以下数据属性:
这是表格......
<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>
根据这些示例中的任何一个,如果已填写所需的表单字段,并且它们符合其他属性条件,则会弹出一条消息,通知所有表单字段都已经过验证。否则,有问题的表单字段附近会有文本指示错误。
参考文献: - jQuery验证:https://jqueryvalidation.org/documentation/
答案 3 :(得分:6)
jQuery Validation Unobtrusive Native是ASP.Net MVC HTML帮助程序扩展的集合。 这些使用jQuery Validation对HTML 5数据属性驱动的验证的本机支持。 微软用MVC 3发回了jquery.validate.unobtrusive.js。 它提供了一种使用jQuery Validation和HTML 5数据属性组合将数据模型验证应用于客户端的方法 (那是&#34;不引人注目的&#34;部分)。