这里有几个问题。一是你试图混合不引人注目的和常规的 jquery 验证。如果你想像这样使用验证那么你需要确保jquery.validate.unobtrusive.js
不包括在内。这是因为jquery.validate.unobtrusive.js
自动解析并生成文档的验证器,首先validate
所做的是检查是否存在现有验证器,如果存在则退出。
如果您确实决定走非引人注目的路线,请务必不要使用$.validator.unobtrusive.adapters.add
因为它会导致错误而不jquery.validate.unobtrusive.js
.
不过,我建议您使用不引人注目的验证,因为我认为您正在使用 MVC3。
如果您打算进行不引人注目的验证,您有两种选择,通过添加来自行设置 data-* 属性data-val="true" data-val-nohtml="Html not allowed"
按照 JohnnyO 的建议添加到您的文本区域,并包含一个跨度data-valmsg-for="note" data-valmsg-replace="true"
显示错误消息。或者您可以创建自己的 DataAnnotation 属性。
这是 addMethod 的代码(两种验证都需要)
<script type="text/javascript">
(function ($) {
$.validator.addMethod('nohtml', function (value, element) {
// Test 'value' for html here. 'value' is the value of the control being validated.
return true; // Return true or false depending on if it passes or fails validation, respectively.
}, 'Html not allowed');
} (jQuery));
</script>
不引人注目所需的 javascript 如下
$.validator.unobtrusive.adapters.addBool('nohtml');
关于如何制作自定义验证属性,因为我不确定您使用的是什么语言,假设您使用的是 MVC3,或者如果您在询问后 4 个月后还需要此信息,我将简单地离开这些链接供参考。
MVC 3 中传统 JavaScript 验证与非侵入式 JavaScript 验证的简要比较 - Mitchell Trent 的博客 http://mitchelltrent.com/a-brief-comparision-of-traditional-vs-unobtrusive-javascript-validation-in-mvc-3/
ASP.NET MVC 3 自定义验证 - Microsoft Developer Network http://msdn.microsoft.com/en-us/gg618485