後來查到juqery.validate.js中發現elements方法中$([]).add(this.currentForm.elements)方法在ie8下有問題,只能得到一個jquery對象。(ie9和火狐瀏覽器正常)
後來根據源碼中的註釋提示在網站 http://bugs.jquery.com/ticket/2114 得到答案 :
原文:
後來查到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, :p_w_picpath, [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, :p_w_picpath, [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;
});