jQuery验证this.optional不是一个函数

时间:2018-05-13 01:23:27

标签: jquery jquery-validate

我创建了自己的自定义验证方法,该方法依次使用minlength方法,但是我得到了这个错误:

this.optional is not a function

我的代码在这里:

jQuery.validator.addMethod("validAccount", function(value, element, params) {
        var res = true;
        if (!isNaN(parseInt(value[0]))) {
            res = false;
        } else if (!$.validator.methods.minlength(value.split(""), element, params)) {
            res = false;
        }
        return res;
    }, "The inserted account isn't valid");

任何人都可以帮助我吗?我想了解问题所在。

注意:在minlength方法中我使用split,因为没有它我也得到getLength不是函数。

1 个答案:

答案 0 :(得分:1)

引用OP的comment

  

“帐​​号字段不应该以数字开头,没有这样的内置方法。所以我应该创建它。另外,帐户字段应至少为n个字符。我想过使用现有的方法,而不是重新创建它,但我发现这是一个坏主意。“

也许您不知道可以同时将多个规则应用于同一个字段。您可以编写一个自定义规则,指出它不应以数字开头,然后将其与默认的minlength规则一起使用。

$("#idform").validate({
    rules: { 
        account: { 
            validAccount: true, // <- custom rule to make sure does not start with number
            minlength: 4        // <- default rule (at least 4 characters entered)
        } 
    }
});

您可以根据需要使用任意数量的默认和/或自定义规则(方法)。另外,请查看the additional-methods.js file以获取更多信息。