我正在尝试在即时创建的表单中使用ajaxForm
。实际上,我的应用程序将“动态”生成一个链接,通过单击该链接,它将生成一个ajaxForm
(再次由jQuery动态执行!),所以我使用了{{1}函数.live()
。这是我的错误的代码:
ajaxForm()
在我的表单中,当我点击提交按钮时,页面会刷新。
有解决方案吗?
答案 0 :(得分:0)
尝试使用event.stopPropagation();这是一个JQuery函数。
为此,您需要将事件对象作为参数提供给handeler:
$('form').live('submit', function(event){
并使用此行代替return false;
:
event.stopPropagation();
答案 1 :(得分:0)
return false
应该有效,但是,当您不需要同时执行event.preventDefault()
或event.stopPropagation()
时,最佳做法是event.preventDefault()
或return false;
。在这种情况下,它将是dataType: 'html'
,因为您想要停止提交表单的默认操作。但就像我说'xml', 'script', or 'json'
应该在你的情况下工作,所以我怀疑你可能会使用你正在使用的插件出现某种错误。如果我是你,我会再次查看文档your
插件并确保您的选项是正确的。在后面我看到{{1}}并且文档中只有{{1}} ...您可能想要再次查看您对该插件的使用情况。
答案 2 :(得分:0)
正如其他人所说,你的return false
应该有效。
所以,其他错误。确保正确加载了jQuery,并通过在其中放置调试代码来确保提交的处理程序实际执行。
此外,请确保已安装并启用Firebug(或等效于您的浏览器),以便您可以执行调试。
答案 3 :(得分:-1)
您可能需要拨打preventDefault
来代替“return false”。表格与AJAX结合的jQuery live
用例的伪代码如下:
//Override form submit
$("form").live("submit", function (event) {
event.preventDefault();
var form = $(this);
$.ajax({
url: form.attr('action'), // Get the action URL to send AJAX to
type: "POST",
data: form.serialize(), // get all form variables
success: function(result){
// ... do your AJAX post result
}
});
});
另外,我不确定是否使用ajaxForm(因为我没有使用过ajaxForm),你需要使用jQuery.live
。从文档中推断,您可能根本不需要它。