2014-02-25 18 views
0

我有一個註冊表單,我在使用jquery檢查用戶可用性,但是當用戶不可用時,不應提交表單。如何防止它在不可用情況下提交。我的代碼是如何防止表單在用戶可用性檢查過程中提交?

$(document).ready(function(){ 
    $('#email').change(function() { 
     status=0; 
     user=$('#email').val(); 
     $.ajax({ 
      type:"post", 
      url:"verify-user.php", 
      data:{'user':user}, 
      success:function(data){ 
       if(data=='1'){ 
        $("#show_msg").html('<span style="color:#F00;">Not avilable</span>'); 
       }else if(data=='0'){ 
        $("#show_msg").html('<span style="color:#093;">Avilable</span>'); 
       } 
      } 
     }); 
    }); 
}); 

請幫幫我。您的幫助將不勝感激。提前致謝。

回答

1

防止表單提交的代碼是聯繫在一起的事件 - 在這種情況下:

$('#email').change

您需要將事件傳遞給事件處理函數作爲參數,並添加

event.preventDefault() 

到您的電子郵件更改處理程序。但是,由於您通過Ajax調用驗證,因此如果驗證成功,我相信您必須手動提交表單。下面編輯的代碼 - 沒有經過測試,但希望能引導您朝着正確的方向發展。

$(document).ready(function() { 

    $('#email').change(function(event) { 

     status=0; 

     user=$('#email').val(); 

     // prevent default action 
     event.preventDefault(); 

     $.ajax({ 

      type:"post", 

      url:"verify-user.php", 

      data:{'user':user}, 

      success:function(data){ 

       if(data=='1'){ 

        $("#show_msg").html('<span style="color:#F00;">Not avilable</span>'); 

       } else if (data=='0') { 

        $("#show_msg").html('<span style="color:#093;">Avilable</span>'); 

        //submit your form if validation succeeds 
        $("#your-form-id").submit(); 

      } 

     } 

    }); 

}); 

}); 
+0

感謝您的回覆。您的代碼是好的,但是當我使用此代碼的真實條件表單提交時沒有檢查任何其他驗證手段,如果我留下其他字段空白該字段不驗證和表單提交 – Vinie

0

難道你不能只使用if陳述嗎?

var user=$('#email').val(); 
if (!user) { 
    return; 
} 

$.ajax({