javascript - return false 在 javascript 验证中不起作用

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

并输入:

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

最佳答案

要使 return 方法正常工作,您需要为 form 标记本身指定 onSubmit 属性/监听器。就像这样:

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

来自w3c文档:

The onsubmit event occurs when a form is submitted. It only applies to the FORM element.

<小时/>

编辑

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

关于javascript - return false 在 javascript 验证中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15194782/

相关文章:

javascript - 尝试使用discord.js kick 方法时messageAuthor 未定义

javascript - 具有所选函数范围的变量

javascript - 来自函数的意外值 - JS

php - 基于输入的正则表达式创建

javascript - Handlebars - #if 基于 #each 中的父属性

javascript - Cordova 1.9 和 native 控件插件兼容性

javascript - for循环中的缓入缓出曲线

javascript - EXTJS 5 - 如何禁用菜单中的某些项目

javascript - 使用clearRect时无法在 Canvas 上绘制多个形状

javascript - 如何使用 javascript 在 html dom 中打印数组值?