电子邮件重置表单,显示一个带有input: email
的确认框,要求用户确认电子邮件。 (拼写/等)如果用户点击确定表格,则应正常提交。如果用户点击取消,则允许他们更改电子邮件。
$(function(){
$('form').on('submit',function(e){
e.preventDefault();
var email = $('#user_email').val();
if(email.length == 0){
alert('Please enter your email address.');
} else {
confirm('Are you sure you want to reset the password for: '+ email);
// if confirm [ok] submit the form!!!!
}
});
});
附带问题:我可以将电子邮件输入值传递给rails input helper中的confirm
属性吗? (这样我就可以避免编写额外的js
)
e.g。
<%= button_tag type: 'submit', id: "email-confirm", confirm: "Are you sure you want to reset the password for: #{email-input-value}" do %>
Send me reset password instructions
<% end %>
答案 0 :(得分:-1)
使用e.preventDefault()
会阻止表单提交,也无法撤消。您可以在此处理程序中使用return
,而返回false
会阻止默认行为(与e.preventDefault()
相同)和会阻止事件传播(与e.stopPropagation()
相同。由于confirm
根据用户点击的按钮返回布尔值,因此您只需return
该值。此外,您希望在未填写电子邮件时阻止提交(在alert
之后),因此请在其中添加return false;
。这是一个例子:
$(function(){
$('form').on('submit',function(e){
var email = $('#user_email').val();
if(email.length == 0){
alert('Please enter your email address.');
return false;
} else {
return confirm('Are you sure you want to reset the password for: '+ email);
}
});
});