0

我将 Ajax 用于带有 jquery blur 的注册表单,它正在验证,但是当我单击提交表单数据保存在数据库中时,我不需要在提交时保存数据,直到用户不更正字段文本我怎样才能避免这个问题?

$(文档).ready(函数 () {

$('#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();             

});

4

1 回答 1

0

在清除错误之前,您需要阻止表单提交。你可以这样做:

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

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

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

于 2013-09-13T06:41:06.767 回答