看板 Ajax 關於我們 聯絡資訊
var options = { target:'#login_box', url:'regist.php', beforeSubmit:function(arr, $form, options) { var jform = $form[0]; var name = jform.username.value; $.get('account_chk.php',{'name':name},function(data){ if(data == '1') { alert('這個名稱已經被人用走了'); return false; } }); } } $("#registForm").ajaxForm(options); 主要是在執行regist.php之前,想先檢查一下帳號是否重覆 照理來說,應該會先走beforeSubmit下的function 但是不論我怎麼試,程式都會先執行regist.php 再執行beforeSubmit下的function 是不是我那裏寫錯了呢...盼指教,感謝 -- 女人會愛上讓她哭的男人,卻嫁給讓她笑的男人 男人會愛上讓他笑的女人,卻娶了讓他哭的女人 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.167.186.12
mesak:ajax 是非同步傳輸,他不會等你裡面的 get 完畢才跑 sumbit 05/06 02:41
mesak:也就是你的beforeSubmit 的確是先觸發,但是 get 還沒結束 05/06 02:42
mesak:他就接著 submit, 他只盡到 執行了這個 function 的階段, 05/06 02:42
mesak:並沒有等待他回傳 05/06 02:42
mesak:可以綁在 FORM 的 SUBMIT 事件裡面去 檢查 ,完畢之後SUBMIT 05/06 02:43
september02:反覆測試的結果,原因是出在BLOCKUI 05/06 23:50
henrik:既然使用到了jquery 應該也可以使用表單驗證的plugin 05/18 18:59