2010-10-30 55 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