ajax实时表单验证

时间:2013-09-13 06:36:40

标签: jquery ajax

我使用Ajax进行注册表单和jquery模糊,它正在验证,但是当我点击提交表单数据时会在db中保存 我不需要保存提交数据,直到用户不更正字段文本 我怎么能避免这个问题?

$(document).ready(function(){

$('#username').blur(function() {
var username = $('#username').val();
if (window.XMLHttpRequest)
  {
    xmlhttp=new XMLHttpRequest();
  }
  else
      {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
      xmlhttp.onreadystatechange=function(){
          if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                if(username !=""){
                //$('#wait').removeClass('loading');

                    if(xmlhttp.responseText.match(/Space/g)){ 
                        $('#usernameErr').css('display','none');
                        $("#valid_username").html('User name is not valid');
                        $('#wait').addClass('loading'); 
                        return false;       
                    }
                    if(xmlhttp.responseText.match(/No/g)){ 
                        $('#usernameErr').css('display','none');
                        $("#valid_username").html('');
                        }
                    }
                }
          }
         // $('#wait').addClass('loading');
          xmlhttp.open("GET","process_signup.php?name="+username,true);
          xmlhttp.send();             

});

1 个答案:

答案 0 :(得分:0)

您需要阻止表单提交,直到错误被清除。你可以这样做:

$('#my-form').submit(function(e){
    if( checkFormForErrors() ) {
        e.preventDefault();
    }
}

然后只需构建一个checkFormForErrors函数,如果表单有任何错误,则返回true。

但是,请记住,您应该始终检查服务器端的错误。永远不要假设用户给你很好的输入。如果你不检查输入,你将被黑客攻击。