2010-03-17 29 views
0

我有一個HAML頁面,列出了一些鏈接,刪除「東西」,看起來像這樣多種形式+ HAML +的jQuery +的Javascript提交

%div 
    %a.form_submit Delete Thing 1 
    %form{:href=>"#", :id=>'comment_1', :method=>'post', :action=>'/thing/delete'} 
     %input{:type=>'hidden', :name=>'thingid', :value=>'1'} 
     %input{:type=>'submit', style='display:none'} 

%div 
    %a.form_submit Delete Thing 22 
    %form{:href=>"#", :id=>'comment_22', :method=>'post', :action=>'/thing/delete'} 
     %input{:type=>'hidden', :name=>'thingid', :value=>'22'} 
     %input{:type=>'submit', style='display:none'} 

的目的是有一個鏈接「刪除XX」,這將刪除特定的內容。一個頁面可以有多個這樣的鏈接,每個鏈接都是針對一個特定的「事物」。

我也有一張(不顯眼)的jQuery JavaScript代碼,增加了一個click處理給每個窗體如下:

$('a.form_submit').click(function(event) { 
    $('form').submit(); 
    event.preventDefauilt(); 
}); 

這工作時,有一個頁面上的一個形式。但是,如果頁面上有多個表單,那麼如何確保單擊「刪除事件1」只會在id ='comment_1'的表單上觸發submit()事件?

回答

1

我不知道,但是這可能工作...

$('a.form_submit').click(function(event) { 
    var num = parseInt($(this).text()); 
    $('form#comment_'+num).submit(); 
    event.preventDefauilt(); 
}); 

,我也會推薦拿出:href=>"#",因爲它不是一個形式的屬性...

+0

這個答案肯定了我在正確的軌道上。 – 2010-03-18 06:07:04

+0

不妨選擇這個作爲答案...... :) – Reigel 2010-03-18 06:42:05

+0

謝謝Reigel。這個答案讓我離我的解決方案最近。我最終做的是在鏈接上添加一個id,然後使用替換。點擊(功能(事件){ var id = this.id.replace(/ comment_/i,''); $('form#comment _'+ id).submit (); event.preventDefault(); }); 「替換」函數讓我使用命名約定(comment_)來實現我的目標,而不會在鏈接和表單中出現重複的id。 – 2010-03-19 05:50:28