2011年10月29日 星期六

jQuery validate 套件:觸發驗證的事件

jQuery validate 預設的事件很奇妙
使用者按過一次 submit 觸發驗證以後,再回去改欄位內容
欄位內容就會每次 onChange 的時候都會觸發驗證
但因為有時候驗證是要送 AJAX 去給伺服器檢查
我們就不會很希望使用者每按一個鍵都會送一次 request
這樣當使用者一多的時候,或者是有人開機器人在亂按時
伺服器有可能會被這些訊息塞爆掉....


其實這個在 validate 的官方文件中本來就有寫
預設是所有可用事件都會觸發 validate
也就是:onsubmit、onfocusout、onkeyup、onclick
這裡提到的需求就是不要在 keyup 時做出反應
因此只要加上一行把 onkeyup 關掉即可!

範例:

$("#form").validate({
 onkeyup: false,
 rules:{
  ......
 },
 messages:{
  ......
 },
 submitHandler: function(form) {
  ......
 }
});

這樣一來就可以確保瀏覽器不會在使用者打字時一直送 request 了。

PS. 當然如果需要關掉其他事件也是一樣把它設成 false 就好了。

沒有留言: