Rails中的多个提交按钮/表单

14
我正在尝试编写一个Rails应用程序,让您进入某个页面,例如/person/:id。在该页面上,它会显示一组可用的资源。我希望每个资源旁边都有一个按钮,可以将该资源保留给该人(通过创建一个Allocation模型的新实例)。作为扩展,我想每个资源旁边有几个按钮,可以取消预订并执行其他操作。我还想在某些按钮旁边输入数据,例如分配资源的一定百分比。
我的问题是我无法合理地做到这一点,而不重复自己或拥有非常破解的控制器。如何在不匹配提交按钮值部分(按钮上的文本)或使用任何JavaScript的情况下完成此操作?
此外,如果页面上有两个表单,如何设置两个表单的更改以便单击任何提交按钮时都保存?
2个回答

5
我使用jQuery,并且这是我所做的:

im使用jQuery,这就是我所做的:

<script type="text/javascript">
    $(document).ready(function() {

        $('#bulk_print').click(function(){
            var target = '<%= bulk_print_prepaid_vouchers_path(:format => :pdf) %>';
            $('#prepaidvoucher_bulk_print').attr('action', target);
            $('#prepaidvoucher_bulk_print').submit();
        });

        $('#bulk_destroy').click(function(){
            var target = '<%= bulk_destroy_prepaid_vouchers_path %>';
            $('#prepaidvoucher_bulk_print').attr('action', target);
            $('#prepaidvoucher_bulk_print').submit();
        });

    });
</script>

<% form_tag '#', :method => :post, :id => 'prepaidvoucher_bulk_print' do %>

your form details

<button class="button" type="submit" id="bulk_print">
   <%= image_tag("web-app-theme/printer.png", :alt => "Print Selected Vouchers") %> Print Selected Vouchers
</button>

<button class="button" type="submit" id="bulk_destroy">
    <%= image_tag("web-app-theme/cross.png", :alt => "Delete Selected Vouchers") %> Delete Selected Vouchers
</button>

<% end %>

这个想法是根据点击的按钮来动态更改表单操作


1
每一行列表中的项目都要转换为表单,并将与该项目相关的信息放在其中。当然,每次操作后,您需要提交并重新加载页面。唯一的解决办法是使用复选框代替按钮,并将其作为一个大型表单,或者使用Javascript。
至于您的第二个问题,如果您想让提交按钮影响两个“表单”,则应该将它们都作为同一个表单的一部分。如果需要,您可以在表单上有多个提交按钮。否则,您可以使用Javascript动态生成第三个表单,并填充原始表单中的值 - 但这在某些情况下不适用(例如,文件输入)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接