【问题标题】:Multiple forms + HAML + jQuery + Javascript submit多种表单 + HAML + jQuery + Javascript 提交
【发布时间】:2010-03-17 05:59:27
【问题描述】:

我有一个 HAML 页面,其中列出了一些用于删除看起来像这样的“事物”的链接

%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,它为每个表单添加了一个点击处理程序,如下所示:

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

当页面上有一个表单时,此方法有效。但是,如果我在一个页面上有多个表单,如何确保单击“删除事物 1”只会在 id='comment_1' 的表单上触发 submit() 事件?

【问题讨论】:

    标签: jquery webforms haml


    【解决方案1】:

    我不确定,但这可能有效...

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

    我还建议删除:href=>"#",,因为它不是表单的属性...

    【讨论】:

    • 不妨选择这个作为答案... :)
    • 谢谢雷格尔。这个答案让我最接近我的解决方案。我最终做的是在链接上放一个 id,然后使用替换。 $('a.form_submit').click(function(event) { var id=this.id.replace(/comment_/i,''); $('form#comment_'+id).submit(); 事件.preventDefault(); }); “替换”功能让我可以使用命名约定(comment_)来实现我的目标,而不会在链接和表单中出现重复的 id。
    猜你喜欢
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 2015-07-26
    • 2017-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多