在使用validate進行表單驗證時會有第一次驗證通過,但是第二次驗證不通過時,第一次驗證通過的信息殘留在label上面的情況,最常見的就是√殘留
如此圖所示:
此時“請輸入姓名”前面應該時×才是正常情況。如何解決這個問題?
需要對jquery.validate.js文件進行修改,原因如下:
一次驗證成功但是二次驗證失敗后,會進入如下代碼:
showLabel: function( element, message ) { var place, group, errorID, error = this.errorsFor( element ), elementID = this.idOrName( element ), describedBy = $( element ).attr( "aria-describedby" ); if ( error.length ) { // refresh error/success class error.removeClass( this.settings.validClass ).addClass( this.settings.errorClass ); // replace message on existing label error.html( message ); } else { // create error element error = $( "<" + this.settings.errorElement + ">" ) .attr( "id", elementID + "-error" ) .addClass( this.settings.errorClass ) .html( message || "" );
其中會執行 error.removeClass( this.settings.validClass ) 這個代碼,我們找到 validClass 后會發現 validClass: "valid",我們一般會將驗證成功的類名設置為“success”,所以我們只需要將validClass: "valid"
改為validClass: "success"就可以消除這個問題
以上就是全部知識點內容,需要的朋友們可以參考下。
新聞熱點
疑難解答