2012-03-23 15 views
0

登録フォームにユーザー名フィールドがあります。ユーザーが[送信]ボタンを押すと、ユーザー名が空ではなく、そのようなユーザー名がまだ存在しないかどうかを確認する必要があります。ユーザ名が空の場合、私は唯一の偽受け取る。この時点ではAJAXとJSONによる登録フォームの検証

function register() { 
    var userName = checkIsUsernameExist(); 
    var passwordMatch = checkPasswordMatch(); 
    if(userName && passwordMatch){ 
    $.getJSON("inc/API.php", 
     { 
      command : "register", 
      username : $("#txtNewUsername").attr("value"), 
      password : $("#txtNewPassword").attr("value"), 
      email : $("#txtEmail").attr("value"), 
      phone : $("#txtPhone").attr("value") 
     }, 
     function() 
     { 
      $("#divIsRegFormValid").removeClass("registrationFormAlert"); 
      $("#divIsRegFormValid").addClass("registrationFormConfirm"); 
      $("#divIsRegFormValid").html("Thank you for registering!"); 
     } 
    ); 
    } else { 
     $("#divIsRegFormValid").removeClass("registrationFormConfirm"); 
     $("#divIsRegFormValid").addClass("registrationFormAlert"); 
     $("#divIsRegFormValid").html("Some errors occured. Please register again."); 
    } 
} 



function checkIsUsernameExist(){ 
    if($("#txtNewUsername").attr("value") == "") { 
     $("#divIsUsernameExist").html(""); 
     return false; 
    } else { 
    $.getJSON("inc/API.php", 
     { 
      command : 'isUsernameExist', 
      username : $("#txtNewUsername").attr("value") 
     }).done(
     function(result) 
     { 
      if (result != true){ 
       $("#divIsUsernameExist").removeClass("registrationFormAlert"); 
       $("#divIsUsernameExist").addClass("registrationFormConfirm"); 
       $("#divIsUsernameExist").html("This username is available!"); 
       return true; 
      } else { 
       $("#divIsUsernameExist").removeClass("registrationFormConfirm"); 
       $("#divIsUsernameExist").addClass("registrationFormAlert"); 
       $("#divIsUsernameExist").html("This username is not available!"); 
       return false; 
      } 
     }); 
    } 
} 

、それがない場合は - 私は未定義の取得(一部のアラートのコマンドでそれをチェックする):だから私は、これらの機能を持っています。では、ユーザー名が入力され、そのようなユーザー名が既に存在するかどうかチェックされている場合、それを動作させてTrueまたはFalseを返すにはどうすればよいですか? ありがとうございました!

答えて

0

.val()は$("#txtEmail").attr("value") => $("#txtEmail").val()を好まれる;)

+0

いいえ、そうではありません。ちょうど上のslash197に対する私の応答でそれを説明しました。 – Igal

0

あなたのhtmlの代わりに使用$('#txtEmail').val()にはvalue属性が存在しないので、あなたはおそらく未定義得ます。

+0

いいえ、そうではありませんでした。私はここで同期AJAXを使うべきだと言われていますが、私はそれを検索しようとしましたが、これまでに試したことはありませんでした。 – Igal

関連する問題