2010-10-30 24 views
0

我似乎无法得到这个权利。jQuery:如何解决这个活动绑定的语法

我有通过XHR进来的表格。我需要能够通过XHR附加提交处理程序,因此.live()在这里。下面的代码实际上起作用,问题在于XHR HTTP POST发生(这很好),然后发生整页HTTP POST加载,这并不好。返回错误;似乎什么都不做。我的后端是Rails,但这并不意味着在这种情况下。我在这段代码中做了什么错误,导致HTTP POST发生一次XHR和一次全页加载?更好的方式去做这件事?

$('form[name=clip_form2]').live('submit', function() { 
    $.post($(this).attr("action"), $(this).serialize(), null, "script"); 
    return false; 
}); 

我Rails的形式,甚至有一个的onsubmit = “返回false;”处理:

<% form_for(@clip, :url=>group_channel_clip_path(@clip.group_channel,@clip), :method=>:put, :html => {:multipart => true, :name=>'clip_form2', :onsubmit => "return false;"}) do |f| -%> 

回答

0
$(document).ready(function(){ 
    $('form[name=clip_form2]').submit(function(e){ 
     e.preventDefault(); 
     $.post($(this.attr('action')), $(this).serialize(), null, 'script'); 
    }); 
}); 

而且这是一个很容易使用jQuery的扩展与增值功能http://jquery.malsup.com/form/

+0

如果在DOM渲染形式clip_form2不可用这将无法正常工作做到这一点。某些形式的.live()或.delegate()仍然需要在那里。 – randombits 2010-10-30 02:24:05