如何在提交后阻止表单重定向?

时间:2010-04-14 16:16:46

标签: javascript jquery forms redirect form-submit

我搜索了网站,我找到了各种解决方案,其中大多数建议使用

return false;

问题是我正在使用这段代码提交表单:

$(function() {  
    $("#snd").click(function() {  
        var dendar = "http://" + $("#inpt").val() + ":" + $("#pwd").val() + "secretsite.lol/something.xml";
        $("#formen").attr("action", dendar);
        $("#formen").submit();
        alert(dendar);
        return false;
    });  
});

警报就是让我知道表单已提交..

谢谢你们!

4 个答案:

答案 0 :(得分:4)

您必须在submit()调用的事件处理程序中返回false,而不是单击处理程序。

$("#formen").attr("action", dendar); $("#formen").submit(
   function() { 
      return false;
   }
);

正如其他人所指出的,这将阻止表格提交。您要做的是收集表单数据并使用Ajax调用提交它。

$ .post(url,{var1:value1,var2:value2 etc ...});

答案 1 :(得分:4)

您无法阻止重定向,但您可以将表单提交到(可能隐藏的)iframe中,这样您就不会离开当前页面

如果帖子与当前页面位于同一服务器并且您没有发布文件数据,那么Ajax会更好

答案 2 :(得分:3)

使用POST对数据处理程序进行AJAX调用怎么样?这听起来像你想要的。

答案 3 :(得分:2)

使用jquery 1.4:

$("#formen").live("submit",function(e) {  
   e.preventDefault();
}

这会阻止表单实际提交。然后你可以自由地对应该发布的数据做任何事情(使用ajax,在页面上打印一些内容......)。