【问题标题】:javascript confirm cancel still submits formjavascript确认取消仍然提交表单
【发布时间】:2015-02-12 22:37:36
【问题描述】:

我在表单页面上有以下序列,首先它通过验证码,然后验证电子邮件地址,然后询问您是否确定要取消订阅。

除了单击“取消”仍会提交表单外,一切正常。我不能在提交按钮中使用“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;  
}   

【问题讨论】:

标签: javascript forms confirm


【解决方案1】:

confirm returns a boolean - true 如果用户点击“确定”,false 如果他们点击“取消”,那么只需返回confirm 调用的结果:

if (validEmail(frm.Email.value) == true) {
  return confirm('Are you sure you want to unsubscribe?');
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多