Ruby on rails 使用formtastic的多个提交操作
我正在尝试设置一个带有多个提交操作的formtastic表单,下面是RailsCast38。这在Formtastic中的等价物是什么Ruby on rails 使用formtastic的多个提交操作,ruby-on-rails,formtastic,Ruby On Rails,Formtastic,我正在尝试设置一个带有多个提交操作的formtastic表单,下面是RailsCast38。这在Formtastic中的等价物是什么 <%= submit_tag 'Create' %> <%= submit_tag 'Preview', :name => 'preview_button' %> TL;DR:如果您使用javascript提交表单,它不会在提交参数中保留提交按钮的名称 我的问题是Railscasts第288集中使用的代码。此CoffeeScript
<%= submit_tag 'Create' %>
<%= submit_tag 'Preview', :name => 'preview_button' %>
TL;DR:如果您使用javascript提交表单,它不会在提交参数中保留提交按钮的名称
我的问题是Railscasts第288集中使用的代码。此CoffeeScript函数在您提交表单时,在Stripe令牌签出后被激发:
handleStripeResponse: (status, response) ->
if status == 200
$("#stripe_card_token").val(response.id)
$("#my_form_id")[0].submit()
else
# other stuff
由于javascript正在使用$my_form_id[0].submit进行表单提交,因此提交参数中不会包含name参数
我的解决方案是向被单击的按钮添加一个clicked属性
$('form_input[type=submit]').click ->
$('input[type=submit]', $(this).parents('form')).removeAttr('clicked')
$(this).attr('clicked', 'true')
..然后获取单击按钮的id属性,并用它填充隐藏字段:
submitter = $("input[type=submit].clicked=true").attr("id")
我并不特别喜欢这个解决方案。感觉我的js知道的太多了,我不喜欢依赖js来完成这类事情。欢迎任何批评或更好的解决方案:
submitter = $("input[type=submit].clicked=true").attr("id")