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

我正在尝试在 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>


RISEBY
浏览 250回答 1
1回答

慕仙森

该document.getElementById函数返回一个节点,而不是来自输入的值。您需要调用value这些节点上的属性来访问它们的值。function ansValidation(ev) {&nbsp; &nbsp; ev.preventDefault&nbsp; &nbsp; // there is no input named name&nbsp; &nbsp; //var nameValue = document.getElementById("name").value&nbsp; &nbsp; var nameValue = "test";&nbsp; &nbsp; var passValue = document.getElementById("password").value&nbsp; &nbsp; var confpassValue = document.getElementById("confirmPassword").value&nbsp; &nbsp; // the typeof operator returns a string.&nbsp; &nbsp; if(typeof nameValue !== "string"){&nbsp; &nbsp; &nbsp; &nbsp; window.alert("Please re-enter your name")&nbsp; &nbsp; // we use strict validation ( !== ) because it's a good practice.&nbsp; &nbsp; }else if(passValue !== confpassValue) {&nbsp; &nbsp; &nbsp; &nbsp;window.alert("Passwords do not match!")&nbsp; &nbsp; }}<form>&nbsp; &nbsp; Password:<br>&nbsp; &nbsp; <input type="password" id="password" placeholder="Password">&nbsp; &nbsp; <br>&nbsp; &nbsp; Re-enter Password:<br>&nbsp; &nbsp; <input type="password" id="confirmPassword" placeholder="Confirm password">&nbsp; &nbsp; <br>&nbsp; &nbsp; <input type="button" href="#" onclick="ansValidation(event)" value="Sign Up"></form>&nbsp;我还编辑了您的代码以使其在代码段中工作。这是它遇到的一些问题。id=""如果要使用该getElementById函数,则需要将属性传递给输入输入name不存在运算符typeof返回一个字符串,您需要将其与字符串进行比较。在 Javascript 中比较事物时,严格比较事物 (&nbsp;===)始终是一个好习惯。我已将事件添加到函数中,ev.preventDefault以确保在发送表单之前正确完成验证。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript