返回false没有在JavaScript验证
问题描述:
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" />
答
将您的验证的形式。
document.getElementById('my_form').addEventListener('submit', confirmValidation, false);
答
EDIT
对于return
方法工作,你需要指定onSubmit
属性/监听器form
标签本身。像这样:
<form method="post" onsubmit="return confirmValidation();">
<!-- OTHER form fields -->
</form>
从w3c文件:
当表单提交时发生
onsubmit
事件。它只适用于FORM元素。
EDIT
您必须稍微改变您的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
–
user2122323
2013-03-04 05:20:44
+0
@ user2122323编辑答复。请检查。 – hjpotter92 2013-03-04 05:32:23
答
您应该在标签中使用onsubmit()事件。现在,当您提交表单时,它将调用写在onsubmit()事件上的函数。只有在Onsubmit()的情况下,它会检查返回值是否为真,然后进一步否则不会。
<form method="post" onsubmit="return confirmValidation();">
</form>
请显示您的HTML代码? – Roopendra 2013-03-04 04:57:56
你在哪里打电话给你的其他控件JS – polin 2013-03-04 04:58:13
为什么大多数问题都是在后期被低估的! – 2013-03-04 04:59:22