我在表单中有一个select
下拉列表但是希望将提示值设置为" 0"
<%= f.select :image_size_id, options_for_select(@image_sizes.collect{ |i| [i.dimension] }), { prompt: "Please select a Print Size" }, id: 'image_size_select' %>
这会生成
<select id="image_size_select" name="cart_item[image_size_id]">
<option value="">Please select a Print Size</option>
<option value="1">10x8</option>
<option value="2">A4</option>
<option value="3">A3</option>
<option value="4">A2</option>
</select>
使用jQuery我可以做到这一点
$(document).ready(function(){
$('#image_size_select option[value=""]').val('0')
});
但我希望使用select helper来做到这一点。可以这样设置吗?
答案 0 :(得分:2)
您需要将其添加到options_for_select使用的值数组中,而不是使用“prompt”选项,该选项始终设置空值。您还应该使每个子数组中的大小数组有两个元素:一个用于显示的文本,另一个用于值。
<% options = [["Please select a Print Size",0]] + @image_sizes.collect{ |i| [i.dimension, i.dimension] } %>
<%= f.select :image_size_id, options_for_select(options), id: 'image_size_select' %>
答案 1 :(得分:0)
您也可以试试这个。
<%= f.select :image_size_id, options_for_select([["Please select a Print Size", 0]] + @image_sizes.pluck(:dimension, :id)), {}, id: 'image_size_select' %>