Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么jQuery验证方法在Chrome中有效,而在IE中无效?_Jquery_Google Chrome_Internet Explorer_Jquery Validate - Fatal编程技术网

为什么jQuery验证方法在Chrome中有效,而在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 )

我得到了一件可能非常简单的事情,但正如你所想象的,我没有从IE开发者调试器得到任何帮助!:)

我添加了这个方法,使字段的长度基于选择菜单选项而有条件

$.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'