我怎么能知道电子邮件是动态复制的呢
How can I know email is duplicated with devise dynamically
我用设备制作了sign_up page
。在此页面中,可以检查输入的电子邮件是否有效。它使用jQuery动态输出消息,如下所示。
// Output_email-message dynamically
$('#user_email').focusin(function () {
$('#user_email').keyup(function () {
$('#output-email').text('');
})
});
$('#user_email').focusout(function () {
$('#output-email').removeClass('field-output-comple').addClass('field-output');
if ($('#user_email').val().length < 1) {
$('#output-email').text('<%= t 'devise.registrations.output_email_blank' %>');
} else if (!isValidEmailAddress($('#user_email').val())) {
$('#output-email').text('<%= t 'devise.registrations.output_email_uncomple' %>');
} else {
$('#output-email').text('<%= t 'devise.registrations.output_email_comple' %>');
$('#output-email').removeClass('field-output').addClass('field-output-comple');
}
})
但我不知道如何检查输入的电子邮件是否重复或不动态。在设计中有什么有用的功能吗?感谢阅读。
例如,在用户控制器中创建一个函数,该函数接受一个参数(电子邮件)并返回一个布尔值。然后可以使用JQuery通过ajax访问该函数,然后进行显示。
def check_email
return User.find_by(:email => params[:email]) ? true : false
end
在您的路线中添加
get '/users/:email' => 'users#check_email', :defaults => { :format => 'json' }
然后在验证电子邮件功能中发送ajax请求以检查电子邮件。
$.get('/users/'+$('#user_email').text(), function(data){
// Print to html
});
我不知道如何使用ajax编写代码。所以我用宝石做了。这是我的密码。
new.html.erb
else if (!isDuplicateEmail($('#user_email').val())) {
$('#output-email').text('<%= t 'devise.registrations.output_email_duplicate' %>');
}
function isDuplicateEmail(emailAddress) {
if ($.inArray(emailAddress, gon.emails) == -1) {
return true
} return false
}
在你的控制器中,你应该把你的变量和gon
放在一起。这个控制器是用设备签名的。所以我把它放在new
方法中
registrations_controller.rb
def new
gon.emails = User.pluck(:email)
puts 'indexr'
puts gon.emails
super
end
有关"gon"的更多解释,请阅读本页。
相关文章:
- 动态添加/复制表单时绑定到表单提交事件
- 我怎么能知道电子邮件是动态复制的呢
- 动态复制元素 ID
- 在提交表格时计算所有动态项目的总数,包括复制的项目
- ExtJS拖放中的动态复制
- 如何将节点内容从 xml 复制到硬编码的 html(动态到原始 html)
- 复制动态上载的图像
- 如何使用带有动态内容和触发器的剪贴板.js进行复制
- 动态复制HTML DIV与Javascript
- 动态添加或复制指令不会从父作用域获取变量值
- 删除:动态地复制/克隆一个表单以获得额外的数据输入
- 通过动态字段中的动态复选框复制地址
- 复制动态画布到另一个画布不工作
- 将动态字段值复制到另一个字段
- Javascript从动态表单中复制字段
- 退出和重新进入时由于某种原因在表中复制动态行
- 如何动态复制数组从php到javascript
- Ext JS 3:如何复制动态生成的树面板
- 动态复制表单文本区域
- 动态复制<脚本>html文件中的元素