繁体   English   中英

填写所有表单字段后如何从 javaScript 重定向到页面

[英]how to redirect to a page from javaScript after filling all the form fields

我正在使用单页应用程序,并且在填写所有表单字段并提交后,我想使用 javascript 重定向到新页面。

注册.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
    <title></title>
    <script src="https://code.jquery.com/jquery-3.4.1.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        function validatation() {
            debugger
            if ($("#txtfname").val() == "") {
                debugger
                alert("Provide a first name");
                $("#txtfname").focus();
                return false;
            }
            if ($("#txtmname").val() == "") {
                debugger
                alert("Provide a middle name");
                $("#txtmname").focus();
                return false;
            }
            if ($("#txtlname").val() == "") {
                debugger
                alert("Provide a last name");
                $("#txtlname").focus();
                return false;
            }
            return true;
        }
    </script>
    <script src="signup.js"></script>
</head>
<body>
    <form id="txtPersonalInformation" onsubmit="return validatation()">
        <h1>Personal Information</h1>

        <label for="txtfname">First Name:</label>
        <input id="txtfname" name="txtfname" type="text" /><br />

        <label for="txtmname">Middle Name:</label>
        <input id="txtmname" name="txtmname" type="text" /><br />

        <label for="txtlname">Last Name:</label>
        <input id="txtlname" name="txtlname" type="text" /><br />

        <input id="btnnext" type="submit" value="Next" />
    </form>
</body>
</html>

注册.js

$(document).ready(function () {
    $('#btnnext').click(function (event) {
        sessionStorage.clear();
        sessionStorage.setItem("firstName", $("#txtfname").val());
        sessionStorage.setItem("lastName", $("#txtlname").val());
        sessionStorage.setItem("middleName", $("#txtmname").val());
        $("#txtPersonalInformation").load("ContactInformation.html");
    });
});

联系信息.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <script src="https://code.jquery.com/jquery-3.4.1.min.js" type="text/javascript"></script>
     <script src="ContactInformation.js"></script>
</head>
<body>
    <form id="txtContactInformation">
        <h1>Contact Information</h1>

        <label for="txtemailid">EmailAddress:</label>
        <input id="txtemailid" name="txtemailid" type="text" /><br />

        <label for="txtpass">Password:</label>
        <input id="txtpass" name="txtpass" type="password" /><br />

        <label for="txtcontactno">Contact No:</label>
        <input id="txtcontactno" name="txtcontactno" type="number" /><br />

        <input id="btnsubmit" type="submit" value="Submit" />

    </form>
</body>
</html>

现在面临以下问题

当我只填写一个输入字段并按下下一步按钮时,它被重定向到下一页

当我填写所有输入字段并按下下一步按钮时,重定向不起作用。

你可以用你的注册码做这样的事情(改变最后一行)。

$(document).ready(function () {
    $('#btnnext').click(function (event) {
        sessionStorage.clear();
        sessionStorage.setItem("firstName", $("#txtfname").val());
        sessionStorage.setItem("lastName", $("#txtlname").val());
        sessionStorage.setItem("middleName", $("#txtmname").val());
        document.body.innerHTML='<object type="text/html" data="ContactInformation.html" ></object>';
    });
});

但是您的验证没有做任何事情来阻止下一页加载。 另外,是否有理由需要使用 onsubmit=? 作为 SPA,为了防止导航到提交 URL,您的 onsubmit function 应始终调用 event.preventDefault()(或返回 false)以防止表单的默认“提交”行为。

$('#btnnext').submit(function (event) {
    event.preventDefault();
    if( !validatation() ) return;
    sessionStorage.clear();
    sessionStorage.setItem("firstName", $("#txtfname").val());
    sessionStorage.setItem("lastName", $("#txtlname").val());
    sessionStorage.setItem("middleName", $("#txtmname").val());
    $("#txtPersonalInformation").load("ContactInformation.html");
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM