javascript - 为什么代码中的登录函数没有被调用?

标签 javascript

我在登录函数中添加了一个断点。当我提交表单时,应该调用登录函数;但它没有被调用。当我登录时,页面不会重定向到 window.location。如果登录凭据与本地存储中的登录凭据相同,我希望重定向页面。我知道我们不应该验证您的代码客户端。但现在,我们先忽略它。

 var db = window.localStorage;

    function signUp() {
        var signupFormDt = document.querySelector('#signup-form');
        var email = signupFormDt.querySelector('input[name="email"]');
        var password = signupFormDt.querySelector('input[name="password"]');
        var userName = signupFormDt.querySelector('input[name="name"]');

        db.setItem(userName.name, userName.value);
        db.setItem(email.name, email.value);
        db.setItem(password.name, password.value);
    }

    function login() {
        var loginFormDt = document.querySelector('#login-form');
        var logEmail = loginFormDt.querySelector('input[type="email"]');
        var logPass = loginFormDt.querySelector('input[type="password"]');
        if (db.email == logEmail.value && db.password == logPass.value) {
            window.location = 'http://www.google.com';
        } else {
            window.location = "http://www.google.com";
        }

    }
 <!DOCTYPE html>
    <html lang="en">

    <head>
        <meta charset="UTF-8">
        <title></title>
        <!--Link to StyleSheet-->
        <link rel="stylesheet" href="../css/style.css">
        <link href="https://fonts.googleapis.com/css?family=Roboto+Condensed" rel="stylesheet">
    </head>

    <body>
        <header>
            <div class="container">
                <h1>
                    <a href="#"></a>
                </h1>
                <nav>
                    <ul class="clearfix">
                        <li>
                            <a href="#">
                                <h4>Home</h4>
                            </a>
                        </li>
                        <li>
                            <a href="../html/about.html">
                                <h4>About</h4>
                            </a>
                        </li>
                        <li>
                            <a href="#">
                                <h4>Contact</h4>
                            </a>
                        </li>
                        <li>
                            <a href="#">
                                <h4 id="social">Social</h4>
                                <div class="arrow"></div>
                                <ul>
                                    <li>Twitter</li>
                                    <li>Facebook</li>
                                    <li>Instagram</li>
                                    <li>Snapchat</li>
                                    <li>Tumblr</li>
                                </ul>
                            </a>
                        </li>
                    </ul>
                    <!-- end of ul of main nav-->
                </nav>
                <!--end of nav-->
            </div>
            <!--end of container-->
        </header>
        <main>
            <section>
                <h3>login Page</h3>
                <div id="login">
                    <p><a href="../html/index.html" title="link to home page">Myselfie Tech</a></p>
                    <form method="Post" id="login-form">
                        <p>
                            <input type="email" name="email" id="email" placeholder="email" required>
                        </p>
                        <p>
                            <input type="password" name="password" id="password" placeholder="password" required>
                        </p>
                        <p>
                            <button type="submit" onsubmit="login()">Submit Query</button>
                        </p>
                        <p>
                            <button onclick="window.location='../html/index.html'">Back</button>
                        </p>
                    </form>
                </div>
            </section>
        </main>
        <footer>
            <p>
                <center><small>©Copyright 2017 programmers inc.</small></center>
            </p>
        </footer>
        <!--Link to Javascript-->
        <script src="../javascript/scripts1.js"></script>
    </body>

    </html>

最佳答案

button 元素没有 onsubmit 属性。您应该将该属性放在 form 标记上才能使其正常工作。还要确保取消表单提交,因为您想使用 window.location:

以不同方式控制导航
  1. 添加返回:

    <form onsubmit="return login();">
    
  2. location后添加return false.href:

    function login() {
        var loginFormDt = document.querySelector('#login-form');
        var logEmail = loginFormDt.querySelector('input[type="email"]');
        var logPass = loginFormDt.querySelector('input[type="password"]');
        if (db.email == logEmail.value && db.password == logPass.value) {
            window.location.href = 'http://www.google.com';
        } else {
            window.location.href = "http://www.google.com";
        }
        return false; // <------
    }
    

关于javascript - 为什么代码中的登录函数没有被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45494005/

相关文章:

javascript - 向 Javascript 对象添加函数的不同方法

javascript - highcharts javascript API 中的图表突出显示

javascript - 将 "Tag"(字符串)替换为 JavaScript 中的所有匹配项

javascript - 为什么 JavaScript 在非 bool && 语句中选择较大的数字?

javascript - 仅使用 JS 控制台刷新元素

JavaScript - 是否可以在 Outlook 约会中添加收件人并向与会者发送邀请?

javascript - 为什么我的 https 来源没有使用 navigator Geolocation 服务的权限?

javascript - 数组过滤器方法不返回 trim 值

javascript - 丑陋的动态谷歌图标 - 任何补救措施?

Javascript 文件未在端口 8080 上加载