Anb*_*Raj 10 jquery jquery-validate
这是我动态更新jQuery验证的代码.在文档加载中,我创建验证.此代码用于动态更新电话号码验证.应用此验证后,当我在电话号码文本框中输入任何内容时,我无法调用未定义错误的方法"调用".
$("#phone").rules("remove");
$("#phone")
.rules(
"add",
{
required:true,
minlength:5,
maxlength:20,
phoneUS:true,
messages:{
required: "Enter company phone number",
minlength:"Phone number should contain a minimum of 5 characters",
maxlength:"Phone number should contain a maximum of 20 characters",
phoneUS:"Enter valid phone number"
}
});
Run Code Online (Sandbox Code Playgroud)
提前致谢.怎么解决这个?
Spa*_*rky 23
有四个潜在的问题.
1)你错过了该messages部分的结束支撑.
$("#phone").rules("add", {
required: true,
phoneUS: true,
messages: {
required: "Enter company phone number",
phoneUS: "Enter valid phone number"
} //<-- this was missing
});
Run Code Online (Sandbox Code Playgroud)
演示:http: //jsfiddle.net/A8HQU/2
2)有一个已知的错误,messages使用该rules('add')方法添加会破坏插件和/或规则.绝对确保您包含jQuery Validate版本1.11.1或更高版本.
3)该phoneUS规则要求列入的additional-methods.js文件.
4)rules('add')方法必须来到之后的.validate()初始化功能.
注意:
你正在使用phoneUS规则,所以minlength并且maxlength完全是多余的,因为phoneUS规则已经在寻找精确的格式/长度.
我有同样的问题,但原因不同.当我将规则"require:true"而不是"required:true"放置时,会出现同样的问题.
当您在规则中指定没有相应方法的验证时,会发生此错误.通过调试我发现异常显示我指定了一个规则"require",方法名称是"required".它尝试访问hashmap中的方法,并尝试.call(),即使找不到该方法,也会导致异常.
如果插件作者只是在这种情况下抛出了一个自定义错误,声明"规则'要求'没有方法",那么调试和识别拼写错误会更容易.
即使字段无效,这也是插件提交臭名昭着的原因.查看并投票选择我的问题报告 - https://github.com/jzaefferer/jquery-validation/issues/1212
作为相关错误,如果您添加自定义规则,请使用:
$.validator.addMethod('field-is-valid', function (val, element) { ...})
Run Code Online (Sandbox Code Playgroud)
但是在你的规则声明中用错误的名称引用它:
$(element).rules('add', {
"field-valid": true
})
Run Code Online (Sandbox Code Playgroud)
你会得到同样的Cannot call method call of undefined.
| 归档时间: |
|
| 查看次数: |
30603 次 |
| 最近记录: |