我搜索了网站,我找到了各种解决方案,其中大多数建议使用
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;
});
});
警报就是让我知道表单已提交..
谢谢你们!
答案 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,在页面上打印一些内容......)。