2014-02-25 76 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({