Javascript jQuery重定向到另一个文件

Javascript jQuery重定向到另一个文件,javascript,jquery,html,cordova,Javascript,Jquery,Html,Cordova,成功登录后,我正在尝试指向另一个文件。然而,在显示登录成功警报后,我似乎无法转到b.html。这似乎是保持在同一页。我尝试了document.location.href、window.location.replace,但似乎不起作用 <script> window.onload = function() { document.addEventListener("deviceready", init, false); } function in

成功登录后,我正在尝试指向另一个文件。然而,在显示登录成功警报后,我似乎无法转到b.html。这似乎是保持在同一页。我尝试了document.location.href、window.location.replace,但似乎不起作用

<script>
    window.onload = function() {
        document.addEventListener("deviceready", init, false);
    }

    function init() {
        document.getElementById("btnSave").addEventListener("click", saveData, false);
        document.getElementById("btnGet").addEventListener("click", getData, false);
    }

    function getData() {
        var email1 = document.getElementById("email1").value;
        var pass1 = document.getElementById("password1").value;
        var email2 = window.localStorage.getItem("email");
        var pass2 = window.localStorage.getItem("pass");
        if (email1 == email2 && pass1 == pass2) {
            alert("Login successfully");
            window.location.href = "/b.html";
        } else {
            alert("Invalid login credentials");
        }
    }
</script>
<form class="login-form">
    <input type="email" id="email1" name="email1" placeholder="Email Address" required/>
    <input type="password" id="password1" name="password1" placeholder="Password" required/>
    <button id="btnGet" type="submit" name="submit">Login</button>
</form>

重定向不起作用的原因是,单击“登录”按钮会提交表单。这是web浏览器的正常行为。在您的情况下,您需要防止这种默认行为

使用jQuery,您可以这样做:

$('form.login-form').submit((e) => {
    e.preventDefault();
});
(() => {
    let form;

    function init() {
        form = document.querySelector('login-form');

        if (!form) {
            throw new ElementNotFoundException();
        }

        form.addEventListener('submit', onSubmitHandler);
    }

    function onSubmitHandler(e) {
        e.preventDefault();

        // get values, validate...

        window.location.href = 'b.html';
    }

    init();
});
由于您的代码中根本没有使用jQuery,您可能会对这样一个版本感兴趣:

form.addEventListener('submit', e => {
    e.preventDefault();
});
另一种解决方案是不向登录按钮添加type=submit属性

但是你能做的最好的事情,互联网用户习惯的就是在提交表单后重定向用户。然后,这不仅在用户单击按钮时有效,而且在用户按下ENTER键时也有效

那么您的代码应该如下所示:

$('form.login-form').submit((e) => {
    e.preventDefault();
});
(() => {
    let form;

    function init() {
        form = document.querySelector('login-form');

        if (!form) {
            throw new ElementNotFoundException();
        }

        form.addEventListener('submit', onSubmitHandler);
    }

    function onSubmitHandler(e) {
        e.preventDefault();

        // get values, validate...

        window.location.href = 'b.html';
    }

    init();
});

重定向不起作用的原因是,单击“登录”按钮会提交表单。这是web浏览器的正常行为。在您的情况下,您需要防止这种默认行为

使用jQuery,您可以这样做:

$('form.login-form').submit((e) => {
    e.preventDefault();
});
(() => {
    let form;

    function init() {
        form = document.querySelector('login-form');

        if (!form) {
            throw new ElementNotFoundException();
        }

        form.addEventListener('submit', onSubmitHandler);
    }

    function onSubmitHandler(e) {
        e.preventDefault();

        // get values, validate...

        window.location.href = 'b.html';
    }

    init();
});
由于您的代码中根本没有使用jQuery,您可能会对这样一个版本感兴趣:

form.addEventListener('submit', e => {
    e.preventDefault();
});
另一种解决方案是不向登录按钮添加type=submit属性

但是你能做的最好的事情,互联网用户习惯的就是在提交表单后重定向用户。然后,这不仅在用户单击按钮时有效,而且在用户按下ENTER键时也有效

那么您的代码应该如下所示:

$('form.login-form').submit((e) => {
    e.preventDefault();
});
(() => {
    let form;

    function init() {
        form = document.querySelector('login-form');

        if (!form) {
            throw new ElementNotFoundException();
        }

        form.addEventListener('submit', onSubmitHandler);
    }

    function onSubmitHandler(e) {
        e.preventDefault();

        // get values, validate...

        window.location.href = 'b.html';
    }

    init();
});

可能位置href未正确写入,请替换window.location.href=/b.html;到window.location.href=b.html

可能位置href未正确写入,请替换window.location.href=/b.html;到window.location.href=b.html

在域中使用完整的URL并检查。1.不要在表单中调用任何名称=提交。2.如果您提交表单,您将离开页面,脚本可能没有时间执行,或者表单将不会向服务器发送任何内容。而是让表单操作重定向。3.在location.href-PS中使用完全限定的URL:如果需要在处理程序中执行JavaScript,请将按钮更改为type=button,否则请在服务器上执行操作或取消提交。但是,如果我有表单操作重定向,即使登录失败,它是否仍会将用户指向该页面?您将凭据保存在本地存储中的何处?根据脚本,如果您已成功地将任何内容存储在localstorage中,并且与您填写的内容相同,则会重定向您。任何人都可以直接进入b.html任何方式是的,这就是我所想的,我已经成功地输出了成功登录,但它似乎并没有去b.htmlus完整的URL与域和检查。1.不要在表单中调用任何名称=提交。2.如果您提交表单,您将离开页面,脚本可能没有时间执行,或者表单将不会向服务器发送任何内容。而是让表单操作重定向。3.在location.href-PS中使用完全限定的URL:如果需要在处理程序中执行JavaScript,请将按钮更改为type=button,否则请在服务器上执行操作或取消提交。但是,如果我有表单操作重定向,即使登录失败,它是否仍会将用户指向该页面?您将凭据保存在本地存储中的何处?根据脚本,如果您已成功地将任何内容存储在localstorage中,并且与您填写的内容相同,则会重定向您。任何人都可以直接进入b.html任何方式是的,这就是我所想的,我已经成功地输出了成功登录,但它似乎没有进入b.html。你确定b.html在你的html所在的同一目录中吗?是的,我尝试了header,它可以工作,不适用于此jquery尽管您确定b.html与您的html位于同一目录中吗?是的,我尝试了header,但它可以工作,但不适用于此jquery