2017-05-20 5 views
1

私はCodeigniterを使用しており、利用可能であるかどうかを確認するログイン登録フォームを作成しています。ユーザーはそのIDでログインできます。 だから私はそれのためにAjaxを使用しようとしています。Codeigniterの電子メールの可用性をチェックして、データベースにアクセスせずに、電子メールが利用可能になるまでフォームを無効にする

私はこのAjaxを私のビューに入れました。

  $(document).ready(function() { 
      $("#email").keyup(function() { 
       var email = $(this).val(); 

       if (email.length > 3) { 
        $("#result").html('checking...'); 

        $.ajax({ 
         type: 'POST', 
         url: emailAvailability, 
         data: { email: email }, 
         success: function(data) { 
          console.log(data); 
          $("#result").html(data); 

          if (data.indexOf('Available')) { 
           emailAvaliable = 1; 
           //$('#candidateLogin').removeClass('disabled'); 
          } else { 
           emailAvaliable = 0; 
           //$('#candidateLogin').addClass('disabled'); 
          } 
         } 
        }); 
        return false; 
       } else { 
        $("#result").html(''); 
       } 
      }); 
      }); 

私は妥当性検査にパーズリープラグインを使用しています。

$(".formValidationClass").on('click', function (e) { 
    e.preventDefault; 
    $(this).parsley(); 
}); 

ここでコントローラコード。

public function check_email_availability(){ 

    $data = $this->input->post(); 
    // Now I want to check email is unique or not without going to database. 
} 

第二の問題は、電子メールが有効な&利用可能になるまで、私は、フォームを無効にしたいです。

送信するフォームを無効にするためにこのスクリプトを試しましたが、動作していないためフォームが送信されました。私は提出しないサーバー側の検証を行っているが、それでもクライアント側を形成しないようにしたい。 これはスクリプトです。

 $(".formValidationClass").on('click', function(e) { 
    e.preventDefault; 

    $(this).parsley().validate(); 
    console.log('on form click, After validation'); 
    // return false; 


}); 

var emailAvaliable = 0; 

$(".formValidationClass").submit(function(event) { 
    // Validate form fields 

    if (emailAvaliable == 1) { 
     console.log('Email Avaliable'); 
     $(this).parsley(); 
     return true; 
    } else { 
     console.log('Email not Avaliable'); 
     return false; 
    } 

}); 

コードを改善することに関するすべての提案が受け入れられます。ありがとう。

+0

{ メールアドレス: メール } – JYoThI

+0

ありがとう、私はそれを更新しましたが、以前のコードも私のためにうまくいきます。 @JYoThI –

+0

*データベースに行くことなく*あなたは電子メールがユニークであるかどうかチェックすることはできません – JYoThI

答えて

1

フォーム送信イベントを防止する場合は、e.PreventDefault();をご利用ください。詳細はUsing JQuery - preventing form from submittingをご確認ください。私はこれがあなたにとって有益だと思います。

+0

ありがとう、しかし、私は最初にそれを見て、それも試しました。しかし、私はそれを私のパセリ検証プラグインでどのように使うのか分からなかった。 –

+0

あなたの問題を解決しようとしましょう。 –

関連する問題