【问题标题】:Custom data-attributes from select_tag not submitting - Rails 4来自 select_tag 的自定义数据属性未提交 - Rails 4
【发布时间】:2016-05-17 06:55:18
【问题描述】:

我在 Rails 4 应用中有一个简单的搜索 form_tag。

其中一个选项是 select_tag:

<%= select_tag "plottable[plottable_id]", options_for_select(Plottable.all.map{ |plottable| [ plottable, plottable.id, { 'plottbale-type' => plottable.class } ] }), prompt: 'Select one option'%>

HTML 生成正确,导致:

<select name="plottable[plottable_id]" id="plottable_plottable_id">
  <option value="">Select one option</option>
  <option plottable-type="Pool" value="3">Pool1</option>
  <option plottable-type="Pool" value="4">Pool2</option>
  <option plottable-type="Asset" value="33">Asset1</option>
  <option plottable-type="Asset" value="34">Asset2</option>
</select>

提交表单时,不会提交绘图类型。以下是参数:

Parameters: {"utf8"=>"✓", "from_time"=>"", "to_time"=>"", "plottable"=>{"plottable_id"=>"35"}, "commit"=>"Search"}

感谢您的建议。

【问题讨论】:

  • 不能用表单提交数据属性
  • 如果你想用表单发送这个参数,那么只需创建一个隐藏字段标签并通过它提交

标签: forms ruby-on-rails-4


【解决方案1】:

试试这个:

<select name="plottable[plottable_id]" id="plottable_plottable_id">
<option value="">Select one option</option>
  <option plottable-type="Pool" value="3">Pool1</option>
  <option plottable-type="Pool" value="4">Pool2</option>
  <option plottable-type="Asset" value="33">Asset1</option>
  <option plottable-type="Asset" value="34">Asset2</option>
</select>
<input type="hidden" name=plottable[type] value="", id="plottable_plottable_type">


$('#plottable_plottable_id').on('change', function(){
    var type = $('option:selected', this).attr('plottable-type');
  $('#plottable_plottable_type').val(type);
})

您也可以通过 rails 代码添加隐藏字段标签

<%= hidden_field_tag "plottable[plottable_type]"%>

【讨论】:

  • 非常感谢!稍微调整一下选择器就可以了!
猜你喜欢
  • 1970-01-01
  • 2018-03-13
  • 1970-01-01
  • 1970-01-01
  • 2012-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多