微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

表单验证停留在错误 Statement

如何解决表单验证停留在错误 Statement

所以我用简单的 JS 验证了一些密码。如果 pw 不匹配,我有一个 if 语句添加一些 css。但是当我返回表单并更改密码以匹配错误时,无论如何都会保留。我添加了控制台日志,看起来它只是停留在第一个 if 并且永远不会移动到 else 。我厌倦了它,没有任何运气的回报。

Javascript

 var passwordField = document.getElementById("password");
        var passwordConfirmField = document.getElementById("passwordConfirm");
        var form = document.getElementById("register");

        function validateForm(){

            if(passwordField.value != passwordConfirmField){
                console.log("error")
                document.getElementById("password").style.borderColor = "red";
                document.getElementById("passwordConfirm").style.borderColor = "red";
                $('#error').show();
                console.log("Show")
            }
            else {
                console.log("Pressing")
                form.submit();
                console.log("Submit")
                
            }
        }

PUG

block content
    .loginContainer 
        h1 Register
        form#register(method="post",onsubmit="event.preventDefault(); validateForm();")
            input(type="text",name="firstName",placeholder="First Name",required="")
            input(type="text",name="lastName",placeholder="Last Name",name="username",placeholder="Username",name="email",placeholder="Email",required="")
            input#password(type="password",name="password",placeholder="Password",required="")
            input#passwordConfirm(type="password",name="passwordConfirm",placeholder="Confirm Password",required="")
            .alert.alert-danger#error(role='alert')
                | Passwords Do Not Match
            input(type="submit",value="Register")
        a(href="/login") Already have an account? Login Here

解决方法

因为 if 语句中的条件是错误的。应该是:

passwordField.value !== passwordConfirmField.value

注意:在 === 上使用严格相等 == 是一个好习惯,!==!= 也是如此

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。