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

标签 javascript jquery validation jquery-validate

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

相关文章:

javascript - HTML/JavaScript : Simple form validation on submit

ruby - 如何在包含字母和数字的行上检测到 "word"?

javascript - 在另一个 iFrame 实例之上加载 iFrame 实例

javascript - 如何同时选择不同的输入类型?

javascript - 无法使用 .net 在网页中单击“提交”按钮

javascript - 操纵 <td >'s within different <tr>' s

ruby-on-rails - Ruby on Rails : validate when context is not given value

javascript - 从 Node.js 上的 mysql 结果 JSON 获取数组值

php - header 发送后重定向到当前页面

javascript - Facebook 正则表达式允许 .和 ?fref=ufi