2009-09-21 80 views
0

我使用jQuery來識別用戶何時提交表單。然後我使用xajax調用一個php方法來查詢數據庫並確保用戶名和電子郵件地址尚未被使用。使用XAJAX驗證表單


    $('#newUserForm').submit(function() { 
     var FormName = $(this).attr('name'); 
     xajax_validateEmailAddressAndUsername(xajax.getFormValues(FormName)); 
    }); 

然後在validateEmailAddressAndUsername我查詢數據庫,並驗證這種方式。

我遇到的問題是,jquery是異步的,並且在提交表單之前我沒有辦法用正確的xajax響應添加腳本。我怎樣才能解決這個問題?
我應該以不同的方式來做嗎?

謝謝

回答

0

我有時在使用#(obj).submit()時遇到問題。 。綁定似乎更可靠。 你可以做這樣的事情,我認爲(未經測試):

$('#newUserForm').bind('submit', function() { 
    var FormName = $(this).attr('name'); 
    if (xajax_validateEmailAddressAndUsername(xajax.getFormValues(FormName))) { 
      $(this).submit(); 
    } 
    else { 
     alert("Oh no!"); 
     return false; 
    } 
} 
+0

這個代碼卡在無限循環...... 但我認爲你是對的東西。我的問題是:對於if語句將評估爲TRUE,xajax響應應該如何? – Onema 2009-09-21 23:57:38

+0

我明白爲什麼它會無限地陷入困境,當我寫這個迴應時,我很匆忙。 if目前正在返回true並重新提交。嘗試使用$ .post而不是$(this).submit() http://docs.jquery.com/Ajax/jQuery.post – 2009-09-22 04:58:46