用于jquery验证脚本的TypeError

时间:2013-11-21 09:50:44

标签: javascript jquery jquery-validate

我想在mvc应用程序中尝试使用jquery validate插件的一些简单示例。 我有一个使用此方法的JS模块:

ValidateRestriction: function (element) {
    var inputs = $('form').validator();
    inputs.data("validator").checkValidity();

    $(element).validate({
        rules :{
            field: {
                number: true,
                "min": "1",
                "max": "Infinity"
            },
            ignore: ".ignore",
        onkeyup: false
    }
    });
}

但在控制台中我收到错误:

  

TypeError:$(...)。validator不是函数
  var inputs => $( '形式')验证器();

在firebug中,我看到所有需要的JS函数都被加载了。在控制台中验证:

>>> $.fn.validate
function()

这有什么问题?

2 个答案:

答案 0 :(得分:0)

validator()和checkValidity()不是jquery validate插件的一部分。删除前两行,然后尝试最简单的情况,看看你的设置是否正确

$(function(){
 $('form').validate();
})

在表单中的某些元素上放置一个class =“required”并测试它是否正常工作

答案 1 :(得分:0)

您的代码:

ValidateRestriction: function (element) {
            var inputs = $('form').validator();                   
            inputs.data("validator").checkValidity();

            $(element).validate({
                rules :{
                    field: {
                        number: true,
                        "min": "1",
                        "max": "Infinity"
                    },
                    ignore: ".ignore",
                onkeyup: false
            }
            });

        }

这些是你的问题......

1)jQuery Validate插件中没有validator()checkValidity()这样的东西。

2)你不能将.validate()附加到输入元素,假设你的element参数应该是什么。 .validate()方法仅附加到form

3)您的onkeyupignore选项放置不当。这些是rules选项的兄弟姐妹,不是 field的兄弟姐妹。

4)我从来没有听说过为max设置"Infinity"规则。如果省略max规则,则最大值可以是无限的,也可以是无限的。

5)您不需要在方法名称周围使用引号,也不需要围绕数值引用。

6)我添加了required规则进行演示。如果您不想强制输入,请将其删除。

$(document).ready(function () {

    $('#myform').validate({
        rules: {
            field: {
                required: true,
                number: true,
                min: 1
            }
        },
        ignore: ".ignore",
        onkeyup: false
    });

});

工作演示:http://jsfiddle.net/baCBE/