首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用带有单击功能的location.href=,阻止我的表单提交

使用带有单击功能的location.href=,阻止我的表单提交
EN

Stack Overflow用户
提问于 2011-12-24 22:18:32
回答 3查看 2.6K关注 0票数 0

我有一个带有以下按钮的表单:

代码语言:javascript
复制
<input id="test2" class="formbutton" type="submit" value="Play again" />

按submit将触发此javascript:

代码语言:javascript
复制
$("#test2").click(function(){
        $.ajax({   
            type: "POST",
            data: $("#form").serialize(), 
            cache: false,  
            url: "insert.php"  
        });   
        return false;
    });

这一切都运行得很好。问题是,当我尝试ad location.href="mahjong.php?layout=win";时,我想要的是,当我按下这个按钮时,表单将被提交并加载url mahjong.php?layout=win

如果我使用:

代码语言:javascript
复制
$("#test2").click(function(){
location.href="mahjong.php?layout=win";
$.ajax({   
            type: "POST",
            data: $("#form").serialize(), 
            cache: false,  
            url: "insert.php"  
        });   
        return false;
    });

我转到url,但表单并不总是被提交。如何解决这个问题。我无法编辑insert.php文件,因为这个文件也被其他按钮使用(不需要重定向)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-24 22:23:23

在表单返回后,使用success处理程序转到链接:

代码语言:javascript
复制
$("#test2").click(function () {
    $.ajax({
        type: "POST",
        data: $("#form").serialize(),
        cache: false,
        url: "insert.php",
        success: function () {
            location.href = "mahjong.php?layout=win";
        }
    });
    return false;
});

在页面上放置一些可视的通知可能是值得的,比如一个旋转器或禁用按钮,这样用户就知道发生了什么,而不会再次点击按钮。

票数 3
EN

Stack Overflow用户

发布于 2011-12-24 22:23:00

location.href放在ajax调用之后,否则可能会在发送ajax调用之前离开页面。

如果这不起作用,那么将location.href放在ajax调用的回调函数中,这样在您从服务器获得响应之后,它将加载一个新页面,这样您就可以确定数据已经发送。

票数 0
EN

Stack Overflow用户

发布于 2011-12-24 22:25:35

一旦您设置了location.href,当前页面将被卸载,并且其上的所有脚本都将停止。

使用(延迟的)完成处理程序:

代码语言:javascript
复制
$("#test2").click(function () {
    $.ajax({
        type: "POST",
        data: $("#form").serialize(),
        cache: false,
        url: "insert.php",
    })
    .then(function() {
        location.href = "mahjong.php?layout=win";
    });
    return false;
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8625044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档