我想检查onBlur jQuery事件的用户名唯一性。我添加了特殊属性来查找我需要检查的字段:
<input data-validate="/checkname" id="user_email" name="user[email]" size="30" type="email" value="">
并在RegistrationsController中添加了操作(使用设计):
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调用它,发送params添加css类依赖于checkname动作:
$('[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输入电子邮件字段。
此代码不断向我的字段添加错误类,所以我有一些错误 - 有人建议在哪里?