0

jquery ブラーを使用してサインアップ フォームに Ajax を使用していますが、検証中ですが、送信フォームのデータをクリックすると、データベースに保存されます。ユーザーがフィールド テキストを修正しない限り、送信時にデータを保存する必要はありません。この問題を回避するにはどうすればよいですか?

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

});

4

1 に答える 1

0

エラーが解消されるまで、フォームが送信されないようにする必要があります。次のようなことができます。

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

次に、checkFormForErrors関数を作成し、フォームにエラーがある場合に true を返すようにします。

ただし、サーバー側でも常にエラーをチェックする必要があることに注意してください。ユーザーが適切な情報を提供していると思い込まないでください。入力をチェックしないとハッキングされます。

于 2013-09-13T06:41:06.767 に答える