本文實例講述了jQuery validate外掛程式submitHandler提交導致死迴圈解決方法。分享給大家參考,具體如下:
dom物件的提交form.submit();和jquery物件的提交$('').submit();功能上是沒有什麼區別的。但如果用了jquery validate插件,提交時這二個就差大了。 $('').submit();提交時,jquery validate會進行驗證,submitHandler裡面如果寫了$('').submit();會導致死循環,而form.submit();則不會。
這個問題是個小問題,如果不注意,或者寫習慣了,容易出錯;並且出錯時,很難找到。我花了近二小時,才找到原因。
一、簡單說一下dom物件和jquery物件
dom物件,你要用js的寫法來操作,頁面中的標籤。而jquery物件呢,你要用jquery的語法來操作。
dom物件轉換成jquery的物件呢,也很簡單,就加上$()這個就行了,然後就可以用jquery的語法來操作,頁面中的標籤了。我想大家用的最多就是this了。看一下例子。
$('input[name^="hour"]').each(function(index){ this.value=index; //this是dom对像,js写法 }); $('input[name^="hour"]').each(function(index){ $(this).val(index); //$(this)是jquery对像,jquery写法 });
二、jquery validate 死循環程式
$("#product_form").validate({ focusInvalid:false, submitHandler: function(form){ $('.submit').submit(); } });
正確寫法,
$("#product_form").validate({ focusInvalid:false, submitHandler: function(form){ form.submit(); } });
出現死循環的時候,瀏覽器會一直處於載入中,直到瀏覽器掛掉,這個時候,可以加一個alert,你就會知道,validate一直在循環驗證。個人覺得,雖然是個小問題,但很難想起來。
更多關於jQuery外掛相關內容有興趣的讀者可查看本站專題:《jQuery常用外掛及用法總結》
希望本文所述對大家jQuery程式設計有所幫助。