2010-03-17 30 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