我们正在使用 simple_form
并尝试将 id
添加到每个特定的 select_tag 的
选项。这是我们的选择:
<%= f.input :category, collection: %w{ Football Basketball Golf Soccer }, :include_blank => "Choose one" %>
这是我们添加 id/ids
<select class="select required form-control" id="sport_category" name="sport[category]">
<option value="">Choose one</option>
<option value="Football">Football</option>
<option id="addBehavior" value="Basketball">Basketball</option>
<option value="Golf">Golf</option>
<option value="Soccer">Soccer</option>
</select>
但这也可以(为每个选项添加一个 id
)
<select class="select required form-control" id="sport_category" name="sport[category]">
<option value="">Choose one</option>
<option id="football" value="Football">Football</option>
<option id="basketball" value="Basketball">Basketball</option>
<option id="golf" value="Golf">Golf</option>
<option id="soccer" value="Soccer">Soccer</option>
</select>
我们想添加 js 行为以在选择特定 选项
时触发事件,并计划使用 getElementById
来定位该选项。这就是为什么我们要在选项中添加一个 id
..实际上只有篮球选项。
最佳答案
尝试使用,
<%= f.input :category, collection: %w{ Football Basketball Golf Soccer }.map { |category| [category, category, {:id => category}]}, :include_blank => "Choose one" %>
当我尝试时,它给了我 html
<option value="">Choose one</option>
<option id="football" value="Football">Football</option>
<option id="basketball" value="Basketball">Basketball</option>
<option id="golf" value="Golf">Golf</option>
<option id="soccer" value="Soccer">Soccer</option>
可能有更简洁的方法来做到这一点,但它确实有效。
如果你也这样做,
<%= f.input :category, collection: [["Football", "football"], ["Basketball", "basketball", {:id => "basketball"}], ["Golf", "golf"], ["Soccer", "soccer"]], :include_blank => "Choose one" %>
这给了我 html,
<option value="">Choose one</option>
<option value="Football">Football</option>
<option id="basketball" value="Basketball">Basketball</option>
<option value="Golf">Golf</option>
<option value="Soccer">Soccer</option>
同样,可能有更简洁的方法来做到这一点!但它至少对我有用。
希望对你有帮助
关于javascript - 将 html ID 添加到 rails 选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22799800/