为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 JavaScript 中确认两个密码相等

如何在 JavaScript 中确认两个密码相等

RISEBY 2021-12-23 17:01:25
我正在尝试在 JS 中制作一个简单的密码确认器。基本上用户有 2 个输入字段,如果它们匹配,则不会发生任何事情,但如果它们不匹配,则会出现一个警报窗口这也是我第一天使用 javascript,也是我关于 Stack Overflow 的第一个问题,对于任何错误或不幸,我深表歉意。谢谢<body>    <form>        Password:<br>        <input type="password" name="password" placeholder="Password">        <br>        Re-enter Password:<br>        <input type="password" name="confirmPassword" placeholder="Confirm password">        <br>        <input type="submit" onclick="ansValidation()" value="Sign Up">    </form>    <br>    <script>        function ansValidation() {            var nameValue = document.getElementById("name")            var passValue = document.getElementById("password")            var confpassValue = document.getElementById("confirmPassword")            if(typeof nameValue != String){                window.alert("Please re-enter your name")            }else if(passValue != confpassValue) {               window.alert("Passwords do not match!")            }        }    </script></body>
查看完整描述

1 回答

?
慕仙森

TA贡献1827条经验 获得超7个赞

该document.getElementById函数返回一个节点,而不是来自输入的值。您需要调用value这些节点上的属性来访问它们的值。


function ansValidation(ev) {

    ev.preventDefault

    // there is no input named name

    //var nameValue = document.getElementById("name").value

    var nameValue = "test";

    var passValue = document.getElementById("password").value

    var confpassValue = document.getElementById("confirmPassword").value

    // the typeof operator returns a string.

    if(typeof nameValue !== "string"){

        window.alert("Please re-enter your name")

    // we use strict validation ( !== ) because it's a good practice.

    }else if(passValue !== confpassValue) {

       window.alert("Passwords do not match!")

    }

}

<form>

    Password:<br>

    <input type="password" id="password" placeholder="Password">

    <br>

    Re-enter Password:<br>

    <input type="password" id="confirmPassword" placeholder="Confirm password">

    <br>

    <input type="button" href="#" onclick="ansValidation(event)" value="Sign Up">

</form>

 

我还编辑了您的代码以使其在代码段中工作。这是它遇到的一些问题。


  • id=""如果要使用该getElementById函数,则需要将属性传递给输入

  • 输入name不存在

  • 运算符typeof返回一个字符串,您需要将其与字符串进行比较。

  • 在 Javascript 中比较事物时,严格比较事物 ( ===)始终是一个好习惯。

  • 我已将事件添加到函数中,ev.preventDefault以确保在发送表单之前正确完成验证。


查看完整回答
反对 回复 2021-12-23
  • 1 回答
  • 0 关注
  • 249 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信