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;
    }
}

并输入:

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

3 回答 3

3

要使该return方法起作用,您需要为标签本身指定onSubmit属性/侦听器。form像这样:

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

来自w3c文档:

onsubmit事件在提交表单时发生。它仅适用于 FORM 元素。


编辑

添加了jsfiddle 链接

你必须稍微改变你的 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;
    }
}
于 2013-03-04T04:59:07.560 回答
1

将您的验证移至表单。

document.getElementById('my_form').addEventListener('submit', confirmValidation, false);
于 2013-03-04T04:57:40.067 回答
0

您应该在标签中使用 onsubmit() 事件。现在,当您提交表单时,它将调用编写在 onsubmit() 事件上的函数。只有在 Onsubmit() 的情况下,它会检查返回值是否为真,然后继续进行,否则不会。

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

</form>
于 2013-03-04T05:47:30.273 回答