使用选项提交按钮

时间:2017-05-19 07:17:27

标签: ruby-on-rails forms ruby-on-rails-3 ruby-on-rails-4

对于一个表单,我想要两个提交按钮,名为:

AppoveDecline

当用户点击Approve时,它也应该发送approve: true

当用户点击Decline时,它也应该发送approve: false

基本上按钮应该像复选框一样工作

这是否可以使用Rails以及如何实现它?谢谢

2 个答案:

答案 0 :(得分:2)

如果您正在使用标准的submit表单帮助程序,则会返回一个包含密钥" commit"的参数。您可以在控制器代码中对此进行测试。

<%= f.submit 'Approve' %>
<%= f.submit 'Decline' %>
控制器中的

......

def create
  approved = params[:commit] == 'Approve'

approved变量将包含true或false,您可以根据需要在其余的action / method中使用它。

答案 1 :(得分:1)

你可以这样做,但你需要js / jquery。你将有隐藏的复选框,你将以适当的方式和两个按钮检查。 让我们假设您的表单有id&#39;形式&#39;。而且,您的复选框已设有ID&#39; approve_checkbox&#39; 在这种情况下,您需要submit函数来完成此类操作。

$('#approve_button').on('click', function(e){
  e.preventDefault();
  $('#approve_checkbox').prop('checked', true);
  $('#form').submit();
});

$('#decline_button').on('click', function(e){
  e.preventDefault();
  $('#approve_checkbox').prop('checked', false);
  $('#form').submit();
});

当然你可以简化这段代码,但我认为这个想法很明确。