为什么jQuery验证方法在Chrome中有效,而在IE中无效?
我得到了一件可能非常简单的事情,但正如你所想象的,我没有从IE开发者调试器得到任何帮助!:) 我添加了这个方法,使字段的长度基于选择菜单选项而有条件为什么jQuery验证方法在Chrome中有效,而在IE中无效?,jquery,google-chrome,internet-explorer,jquery-validate,Jquery,Google Chrome,Internet Explorer,Jquery Validate,我得到了一件可能非常简单的事情,但正如你所想象的,我没有从IE开发者调试器得到任何帮助!:) 我添加了这个方法,使字段的长度基于选择菜单选项而有条件 $.validator.addMethod("netwkdigit", function(value, element) { var loannumentered = LOAN_NUM.value; if(acctloc.value != "Network" && loannumentered.length > 10 )
$.validator.addMethod("netwkdigit", function(value, element) {
var loannumentered = LOAN_NUM.value;
if(acctloc.value != "Network" && loannumentered.length > 10 ) {
return false;
}
else {
return this.optional(element) || value == value.match(/^[0-9 ]+$/);;
}
}, "Only 10 numbers allowed for the loan if network is not chosen.");
正如我在Chrome中所期望的那样,它可以完美地工作,但IE不行。jQuery验证条件的其余部分如图所示
rules: {
acctloc: {
required: true
},...
LOAN_NUM: {
required: true,
number: true,
netwkdigit: true,
minlength: 10,
maxlength: 13,
},
还有其他jQuery验证规则,但它们与此无关。参考上述内容,如果选择的不是网络,我希望它最多只能是10位,否则是13位
现在,在该方法中,我没有引用表单名称本身,但我已经在表单的主jQuery验证函数中引用了它。
我不认为这有什么关系,但我不确定
对此的任何反馈都将不胜感激
我在上面添加了一个小片段来显示acctloc引用
这是完美的作品,因为我期待它在铬,但不是IE
如前所述,它不应在任何浏览器中工作
你的代码
LOAN_NUM: {
required: true,
number: true,
netwkdigit: true,
minlength: 10,
maxlength: 13,
},
我不知道从哪里得到acctloc
变量;您无法从此处访问LOAN\u NUM
$.validator.addMethod("netwkdigit", function(value, element) {
var loannumentered = LOAN_NUM.value; // <- here!
if (acctloc.value != "Network" && loannumentered.length > 10 ) {
....
或者,如果要从.addMethod()
中访问其他字段的值,请使用jQuery:
$('[name="acctloc"]').val(); // value of 'acctloc'
$('[name="LOAN_NUM"]').val() // value of 'LOAN_NUM'
在我上面的代码块中,acctloc是包含多个选项的选择菜单的名称,“网络”就是其中之一。基本上,如果用户选择网络,我会允许字段值LOAN_NUM的长度大于10。否则,它将禁止它。再说一次,它在Chrome中工作得很好,但在IE中不行。这是我目前无法解决的问题。@BarryP,我根据你的代码构建了一个演示,它不可能在任何浏览器中工作。。。甚至Chrome也在
LOAN_NUM
和acctloc
中抛出undefined
。这些在您所介绍的上下文中没有任何意义@BarryP,如果您想从.addMethod()
中访问其他字段的值,请使用jQuery:$('[name=“acctloc”]').val()
和$('[name=“LOAN_NUM”]')。val()
谢谢,Sparky,我会试一试,但是FWIW,我的代码在FF和Chrome中都能成功运行,只是没有IE。我会尝试将这部分添加到方法中,不过。谢谢非常感谢。那是火花!我不太清楚为什么FF和Chrome对我以前的浏览器更宽容,但我上面提到的是这两个浏览器允许的。我插入了您列出的特定jQuery引用,它相应地工作了!非常感谢!除非你这么做,否则请告诉我如何标记答案。什么版本的IE?
$('[name="acctloc"]').val(); // value of 'acctloc'
$('[name="LOAN_NUM"]').val() // value of 'LOAN_NUM'