2013-03-04 74 views
0
function confirmValidation() { 
    var confirmPass = document.getElementById('newpassword').value; 
    var newpass = document.getElementById('newpassword2').value; 
    var passLength = confirmPass.length; 
    if ((confirmPass == newpass) && (confirmPass != "" && newpass != "") && (passLength > 8)) { 
     alert("ok"); 
     return true; 
    } else { 
     alert("no"); 
     confirmPass.focus(); 
     return false; 
    } 
} 

和輸入工作:返回false沒有在JavaScript驗證

<input name="register" type="submit" class="alert_button" onclick="return confirmValidation()" value="OK" /> 
+0

請顯示您的HTML代碼? – Roopendra 2013-03-04 04:57:56

+0

你在哪裏打電話給你的其他控件JS – polin 2013-03-04 04:58:13

+0

爲什麼大多數問題都是在後期被低估的! – 2013-03-04 04:59:22

回答

1

將您的驗證的形式。

document.getElementById('my_form').addEventListener('submit', confirmValidation, false); 
3

對於return方法工作,你需要指定onSubmit屬性/監聽器form標籤本身。像這樣:

<form method="post" onsubmit="return confirmValidation();"> 
    <!-- OTHER form fields --> 
</form> 

w3c文件:

當表單提交時發生onsubmit事件。它只適用於FORM元素。


EDIT

jsfiddle link加入。

您必須稍微改變您的JavaScript,以便.focus()可能會觸發。

function confirmValidation() { 
    var confirmPass = document.getElementById('newpassword'); 
    var newpass = document.getElementById('newpassword2'); 
    var passLength = confirmPass.value.length; 
    if ((confirmPass.value == newpass.value) && (confirmPass.value != "" && newpass.value != "") && (passLength > 8)) { 
     alert("ok"); 
     return true; 
    } else { 
     alert("no"); 
     confirmPass.focus(); 
     return false; 
    } 
} 
+0

\t \t
\t
新密碼
\t
<輸入名稱=」 新密碼」類型= 「密碼」 ID = 「新密碼」 大小= 「40」> \t
over 8 characters
\t
確認
\t
\t
\t
<輸入名稱= 「寄存器」 型= 「提交」 類= 「alert_button」 值=「行「> \t \t
\t
\t
user2122323 2013-03-04 05:20:44

+0

@ user2122323編輯答覆。請檢查。 – hjpotter92 2013-03-04 05:32:23

0

您應該在標籤中使用onsubmit()事件。現在,當您提交表單時,它將調用寫在onsubmit()事件上的函數。只有在Onsubmit()的情況下,它會檢查返回值是否爲真,然後進一步否則不會。

<form method="post" onsubmit="return confirmValidation();"> 

</form> 
相關問題