0

奇妙な問題があります。メールが既に取得されているかどうか、どのユーザーが入力しているかを確認しています。

シンプルなページで動作していますが、モーダルで呼び出そうとすると動作しません。

jQuery は次のとおりです。

 $('#user_email').focusout(function() {
  $.getJSON('http://127.0.0.1:3000/checkemail.jsonr', { email: $('#user_email').val() }, function(data) 
    { $('#submit').attr('disabled', 'disabled'); }//disable submit
   );
});

私のHTML:

        <input id="user_email" name="user[email]" size="30" type="email" value="">
        <input class="btn" id="submit" name="commit" type="submit" value="Create an account">

私の行動とそれへのルート:

def checkemail
 respond_to do |format|
   format.jsonr do
    if User.where(email: params[:email]).exists? 
      render :json => {
            :status  => :ok,
            :message => "Success!"
            }.to_json
     end
   end
  end
end

...route...
checkemail        /checkemail

MIMEタイプも追加

   Mime::Type.register_alias "application/json", :jsonr, %w( text/x-json )

しかし、ログを見ると、そのアクションは呼び出されていないようです。ただし、すべて同じことが他のプロジェクトで機能しています。

誰かがどこに問題があるのか​​教えてもらえますか?

4

2 に答える 2

0

必要に応じて、この回答に投票してください。ajax ruby​​ rails チェックリストを作成させてください。モーダルではなく単純なページで動作するため、javascript の問題である必要があります。

1) jquery が $(document).ready() ブロックにあることを確認します。2) $('#user_email') で jquery リスナーをテストします。私は alerts() のファンではありませんが、console.log("blah"); を使用します。

3) jsonr 応答なしで単純な ajax 要求を試しますか?

それは私が言わなければならないすべてです。
幸運を!

于 2012-09-12T16:48:53.183 に答える
0

モーダルがどのように実行されているかわかりませんが、モーダルが関連する jQuery 関数にアクセスできることは確かですか?含まれていますか? alert("test"); を貼り付けて、jQuery focusout 関数が実行されていることをテストします。または関数内の何か。

于 2012-09-12T14:54:31.917 に答える