第二个函数onclick没有被调用

Second function onclick not being called

本文关键字:调用 函数 onclick 第二个      更新时间:2023-09-26

我是javascript和jquery的新手,需要您的帮助。我已经尝试搜索论坛,但我无法找到解决方案

我正在尝试将一些内容发布到php文件,然后重定向到我选择的页面。帖子发布正常,但重定向不正常。

html表单是

<form action="userinfo.php" method="post">
    <p><input type="text" required maxlength=7 name="login" id="login" value="" placeholder="Username"></p>
    <p><input type="password" required name="password" id="password" value="" placeholder="Password"></p>
    <p class="remember_me">
      <label>   
        <input type="checkbox" name="remember_me" id="remember_me">
        Remember me on this computer
      </label>
    </p>
    <p class="submit"><input type="button" id="searchForm" onclick="SubmitForm();redirect()" value="Login"></p>
  </form>

jquery代码是

<script>
        function SubmitForm() {
        var login = $("#login").val();
        var password = $("#password").val();
        $.post("userinfo.php", {login: login, password: password },
        function(data) {
            alert("Data Loaded: " + data);
        });
        }
        function redirect(){
            alert("Redirecting..");
            window.location = "mainpage.html"
        }
    </script>

SO重定向()显然没有被调用。对于为什么会发生这种情况,我们将不胜感激。请注意,我不是javascript或jquery专家。我只是想碰碰运气学点什么…:-)

p.s:我可以从php文件重定向,但我不喜欢这样做。

只有在表单提交(登录)成功完成后,您才需要重定向

<input type="button" id="searchForm" onclick="SubmitForm()" value="Login">

然后

<script>
    function SubmitForm() {
    var login = $("#login").val();
    var password = $("#password").val();
    $.post("userinfo.php", {login: login, password: password },
    function(data) {
        alert("Data Loaded: " + data);
        redirect();//redirect here
    });
    }
    function redirect(){
        alert("Redirecting..");
        window.location = "mainpage.html"
    }
</script>

当post请求成功时,您必须调用函数

    <script>
                function SubmitForm() {
                var login = $("#login").val();
                var password = $("#password").val();
                $.post("userinfo.php", {login: login, password: password },
                function(data) {
                    alert("Data Loaded: " + data);
                    // calling the redirect
                    redirect();
                });
                }
                function redirect(){
                    alert("Redirecting..");
                    window.location = "mainpage.html"
                }
        </script>

首先,为什么要同时使用form action和jquery post进行相同的操作。这不是一个好的做法。

使用jquery post-data调用php,如果响应id成功,则重定向到下一页。

 <script>
    var login = $("#login").val();
    var password = $("#password").val();
    $.post("userinfo.php", {login: login, password: password },
    function(data) {
        if(data = "success"){
         console.log("Redirecting..");
         window.location = "mainpage.html"
        }
    });
    }
</script>