jquery.validate.js 验证表单时,在IE当中未验证就直接提交的原因
今天利用了jquery.validate.js来验证表单,发现在火狐、谷歌浏览器当中都可以进行验证,但是在IE系列浏览器当中却无法进行验证就直接将表单提交了。
在网上查了一下原因,大多数文章表明原因是js代码书写不规范造成,也就是在验证表单的规则(rules)数组的最后多了个逗号。起初我也因为是这个原因于是查看了自己的代码发现确实有此问题于是就改正过来了。
但是在浏览器中查看后仍然不起作用,在百思不得其解时,想到了ecmall当中的表单也是利用了此方法。
因 此就对ecmall验证表单的代码进行了 分析发现自己的代码也不存在问题。最后发现了引用的jquery.js的版本不一样,然后我就把ec的 jquery文件复制到了我的文件夹中(保证编码一致,之前右键查看源代码将jquery.js粘入自己的jquery.js后,刷新代码仍然不起作用。 因此可以判断为编码问题),刷新就可以了。
因此总结原因有3个:
-
js代码书写不规范
-
jquery版本有问题
-
编码问题,即编码不统一造成浏览器不识别(尤其是在IE浏览器中对编码的要求非常高)。