gpt4 book ai didi

javascript - 自定义 jquery 验证和不显眼的 JavaScript

转载 作者:搜寻专家 更新时间:2023-11-01 04:53:01 24 4
gpt4 key购买 nike

我正在尝试编写一个自定义验证,当他们提交表单时,如果 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com