簡體   English   中英

javascript確認取消仍提交表格

[英]javascript confirm cancel still submits form

我在表單頁面上有以下順序,首先通過驗證碼運行,然后驗證電子郵件地址,然后詢問是否確定要退訂。

一切正常,除了單擊“取消”仍提交表單。 我無法在“提交”按鈕中使用“ onclick”,因為它將繞過驗證碼。 在我的“如果電子郵件為真'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返回一個布爾值 -如果用戶單擊“確定”,則返回 true ,如果單擊“取消”,則返回false ,因此只需返回confirm調用的結果:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM