2012-03-14 77 views
0

你能幫我嗎,當驗證失敗時,我的腳本應該取消隱藏p標籤中的錯誤信息,並返回false,而是我的表單提交。你能看到我的問題在哪裏嗎?JavaScript返回false表單驗證不起作用

function validate() { 
if (document.emailForm.EMAIL_ADDRESS_.value.length==0) { 
    $('#errorNoAddress').fadeIn(); 
    return false; 
} 
if (document.emailForm.EMAIL_ADDRESS_.value.length>0) { 
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; 
    var address = document.emailForm.email.value; 
    if(reg.test(address) == false) { 
     $('#errorInvalidAddress').fadeIn(); 
     return false; 
    } 
} 
document.emailForm.submit(); 
return true; 
} 

<form id="emailForm" name="emailForm" action="http://domain.com/formhandler.php" method="post"> 
    <p id="errorNoAddress" class="error">Please enter an e-mail address.</p> 
    <p id="errorInvalidAddress" class="error">Please enter a valid email address.</p> 
    <label for="EMAIL_ADDRESS_">E-mail</label> 

    <input type="hidden" id="QUICK_SIGN_UP" name="QUICK_SIGN_UP" value="" /> 
    <input type="image" src="btn-submit.gif" value="Submit" onclick="validate();" /> 
</form> 
+0

你通過點擊返回或通過單擊按鈕「提交」的形式?導致你只能點擊按鈕,點擊返回仍然會直接提交表單。 編輯:哦,你不應該在提交後返回true,因爲一些瀏覽器可能認爲你的腳本仍然在做某些事情。 – nonchip 2012-03-14 15:06:54

+0

您點擊按鈕提交,但潛在用戶也將返回。 – 2012-03-14 15:39:22

+0

如果在輸入錯誤的電子郵件並單擊按鈕後提交,您的支票無法正常工作。如果它在按回車之後(總是)提交,則必須攔截「form.onSubmit」事件。 – nonchip 2012-03-14 15:46:46

回答

3

嘗試<input type="image" src="btn-submit.gif" value="Submit" onclick="return validate();" />