0

ユーザー名の一意性を onBlur jQuery イベントで確認したい。次のようにチェックする必要があるフィールドを見つけるために、特別な属性を追加しました。

<input data-validate="/checkname" id="user_email" name="user[email]" size="30" type="email" value="">

そしてRegistrationsControllerにアクションを追加しました(deviseを使用):

 def checkname
  if User.where('user = ?', params[:user]).count == 0
    render :nothing => true, :status => 200
  else
  render :nothing => true, :status => 409
  end
   return
  end

 ...routes...

   checkname GET   /checkname(.:format)  devise/registrations#checkname

jQuery から呼び出したいのですが、パラメーターを送信して、checkname アクションに依存する css クラスを追加します。

    $('[data-validate]').blur(function() {
    $this = $(this);
    $.get($this.data('validate'), {
        email: $this.val()
    }).success(function() {
        $this.addClass('valid');
    }).error(function() {
        $this.addClass('error');
    });
});

編集:リクエストは呼び出しているようですが、呼び出しが間違っている可能性があります。Firebug ネットワーク タブから:

  http://127.0.0.1:3000/checkname?email=new%40mail.com 404 not found

new@mail.com を電子メール フィールドに入力する場合。

このコードは常にエラークラスをフィールドに追加しているため、いくつかのエラーがあります - 誰かがどこを提案できますか?

4

0 に答える 0