JQuery`live()`和`submit()`问题

时间:2010-12-07 13:04:38

标签: javascript jquery

我想做这样的事情,但是这个看起来像是在无限次地徘徊。

$("form").live("submit", function() { 

    if($(this).attr('action') != "ajax"){
        $(this).submit();
return true; // even i do this!! but form is NOT submited!!
}

else { /* doing the ajax stuff! */ }
});

在Chrome和Firefox中一段时间​​后表单会被提交,类似于10秒,在IE中崩溃了!

我知道当我说form.submit意味着我提交这个并且一次又一次地调用函数时,我怎么能避免这个?

1 个答案:

答案 0 :(得分:11)

再次向.submit()发送气泡,返回.live()处理程序,导致无限循环,而您想在此处调用本机form.submit()方法,如下所示:

$("form").live("submit", function() { 
  if(this.action != "ajax") {
    this.submit();
  }
  else { /* doing the ajax stuff! */ }
});

同样.action is a native DOM property,您可以通过这种方式访问​​它......这里不需要jQuery开销。