首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

jQuery的validate 在ie9和火狐上能用 在ie8上无效解决办法

2012-08-27 
jQuery的validate 在ie9和火狐下能用 在ie8下无效解决方法。juqery.validate.js中发现elements方法中$([]).

jQuery的validate 在ie9和火狐下能用 在ie8下无效解决方法。

juqery.validate.js中发现elements方法中$([]).add(this.currentForm.elements)方法在ie8下有问题,只能得到一个jquery对象。(ie9和火狐浏览器正常)

后来根据源码中的注释提示在网站 http://bugs.jquery.com/ticket/2114?得到答案 :

原文:

I had an issue where jquery.validate was failing in IE6, caused by the above error. I fixed this by updating line 446 and changed:

$([]).add(this.currentForm.elements).filter(":input")

to

$(':input',this.currentForm)

于是把juqery.validate.js中elements方法

???return $([]).add(this.currentForm.elements)
???.filter(":input")
???.not(":submit, :reset, :image, [disabled]")
???.not( this.settings.ignore )
???.filter(function() {
????!this.name && validator.settings.debug && window.console && console.error( "%o has no name assigned", this);
???
????// select only the first element for each name, and only those with rules specified
????if ( this.name in rulesCache || !validator.objectLength($(this).rules()) )
?????return false;
????
????rulesCache[this.name] = true;
????return true;
???});

修改为:

???return $(':input',this.currentForm)
???.not(":submit, :reset, :image, [disabled]")
???.not( this.settings.ignore )
???.filter(function() {
????!this.name && validator.settings.debug && window.console && console.error( "%o has no name assigned", this);
???
????// select only the first element for each name, and only those with rules specified
????if ( this.name in rulesCache || !validator.objectLength($(this).rules()) )
?????return false;
????
????rulesCache[this.name] = true;
????return true;
???});

热点排行