javascript 确认取消仍然提交表单
javascript confirm cancel still submits form
我在表单页面上有以下序列,首先它运行验证码,然后验证电子邮件地址,然后询问您是否确定要取消订阅。
除了单击 "Cancel" 仍会提交表单外,一切正常。我不能在提交按钮中使用 "onclick" 因为它会绕过验证码。在我的 "if the email is true 'else'" 语句中,我尝试了 "return" 和 "return:false" 但它们都没有停止表单提交。
感谢您的帮助。
<form action='<?php echo $_SERVER['PHP_SELF']; ?>' name="unsubscribe" method='post' onsubmit="return checkForm(this);"">
function checkForm(form) {
var frm = document.unsubscribe;
if(!form.captcha.value.match(/^\d{5}$/)) {
alert('Please enter the CAPTCHA digits in the box provided');
form.captcha.focus();
return false;
}
if (validEmail(frm.Email.value) != true) {
alert("Please enter a valid email address");
frm.Email.focus();
return false;
}
if (validEmail(frm.Email.value) == true) {
confirm('Are you sure you want to unsubscribe?');
return true;
}
else {
return false;
}
}
function validEmail(email){
var status = false;
var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
if (email.search(emailRegEx) == -1) {
status = false;
}
else {
status = true;
}
return status;
}
confirm
returns a boolean - true
如果用户点击 "Ok",false
如果他们点击 "Cancel",那么简单的 return 结果confirm
调用:
if (validEmail(frm.Email.value) == true) {
return confirm('Are you sure you want to unsubscribe?');
}
我在表单页面上有以下序列,首先它运行验证码,然后验证电子邮件地址,然后询问您是否确定要取消订阅。
除了单击 "Cancel" 仍会提交表单外,一切正常。我不能在提交按钮中使用 "onclick" 因为它会绕过验证码。在我的 "if the email is true 'else'" 语句中,我尝试了 "return" 和 "return:false" 但它们都没有停止表单提交。
感谢您的帮助。
<form action='<?php echo $_SERVER['PHP_SELF']; ?>' name="unsubscribe" method='post' onsubmit="return checkForm(this);"">
function checkForm(form) {
var frm = document.unsubscribe;
if(!form.captcha.value.match(/^\d{5}$/)) {
alert('Please enter the CAPTCHA digits in the box provided');
form.captcha.focus();
return false;
}
if (validEmail(frm.Email.value) != true) {
alert("Please enter a valid email address");
frm.Email.focus();
return false;
}
if (validEmail(frm.Email.value) == true) {
confirm('Are you sure you want to unsubscribe?');
return true;
}
else {
return false;
}
}
function validEmail(email){
var status = false;
var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
if (email.search(emailRegEx) == -1) {
status = false;
}
else {
status = true;
}
return status;
}
confirm
returns a boolean - true
如果用户点击 "Ok",false
如果他们点击 "Cancel",那么简单的 return 结果confirm
调用:
if (validEmail(frm.Email.value) == true) {
return confirm('Are you sure you want to unsubscribe?');
}