- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试编写一个自定义验证,当他们提交表单时,如果 html 存在于 textarea 中,则会给出错误。
我有以下 -它不起作用,我不确定为什么。
我也不明白不显眼的部分有人可以告诉我如何做吗,因为我在 SO 上看到了其他例子。
文本区域有一个类“note”该表格称为“noteform”
<script type="text/javascript" >
$(document).ready(function () {
$.validator.addMethod('nohtml', function (value, element) {
var text = $(".note").text();
if ($(text).length > 0) {
return false;
}
else {
return true;
}
}, 'Html not allowed');
// // **not sure what to do here**
// $.validator.unobtrusive.adapters.add('containsnohtml', {}, function (options) {
// options.rules['nohtml'] = false;
// options.messages['nohtml'] = options.message;
// });
$('#noteform').validate({
rules: { nohtml: "required nohtml" }
});
});
</script>
最佳答案
这里有几个问题。一个是你试图混合不引人注目的和常规的 jquery 验证。如果你想像这样使用验证,那么你需要确保 jquery.validate.unobtrusive.js
不包括在内。这是因为 jquery.validate.unobtrusive.js
自动解析并为文档生成验证器,validate
做的第一件事就是检查是否存在验证器并退出如果有的话。
如果您确实决定采用非不显眼的路线,请确保不要使用 $.validator.unobtrusive.adapters.add
,因为如果没有 jquery.validate,它会导致错误.unobtrusive.js
.
尽管我认为您使用的是 MVC3,但我还是建议您进行不显眼的验证。如果你打算进行不显眼的验证,你有两个选择,通过添加 data-val="true"data-val-nohtml="Html not allowed"
自己设置 data-* 属性按照 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 个月后甚至还需要此信息,我将继续只需留下这些链接以供引用。
A brief comparision of Traditional vs Unobtrusive JavaScript Validation in MVC 3 - Mitchell Trent's Blog
ASP.NET MVC 3 Custom Validation - Microsoft Developer Network
关于javascript - 自定义 jquery 验证和不显眼的 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5425783/
我是一名优秀的程序员,十分优秀!