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 就好了。
沒有留言:
張貼留言