第二个函数onclick没有被调用

时间:2013-08-15 06:18:13

标签: javascript jquery html

我是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 redirect()。对于为什么会发生这种情况的任何帮助都表示赞赏。请注意,我不是javascript或jquery专家。试着运气学习东西......: - )

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

3 个答案:

答案 0 :(得分:2)

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

<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>

答案 1 :(得分:1)

你必须在邮件请求成功后调用该函数

    <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>

答案 2 :(得分:0)

首先,为什么你要使用表单操作和jquery post进行相同的操作。那不是一个好习惯。

使用jquery post数据来调用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>