感谢您对此的帮助。目标是将选定选项中的一些数据从下拉列表中作为值放入隐藏字段中。我已经使用HTML测试了Rails之外的基本概念(请参阅此处修改过的小提琴:http://jsfiddle.net/e6zZB/1/)并且它可以正常工作。只有当我进入Rails隐藏字段时,值才会发生变化。我的测试方法是在下拉列表中选择一个选项,然后检查源代码以查看值是否已更新(不确定这是否是一个好方法!)仅供参考,这是Rails 2(这是一个较旧的项目)。
的jQuery
$(document).ready(function(){
$("#startdrop").change(function () {
var startidval = this.options[this.selectedIndex];
$("#start-masterlocation-id-field").val($(startidval).data("data-masterlocation-id"));
});
});
视图中的Rails下拉列表
<select id="startdrop" name="startthere">
<% for location in @itinerary.locations %>
<option data-masterlocation-name="<%= location.masterlocation.name %>" data-masterlocation-id="<%= location.masterlocation.id %>" value="<%= location.masterlocation.street_address %>, <%= location.masterlocation.city %>, <%= location.masterlocation.state %>, <%= location.masterlocation.zip %>"><%= location.masterlocation.name %></option>
<% end %>
</select>
在视图中隐藏隐藏字段
<%= hidden_field :newsavedmap, :start_masterlocation_id, :id => "start-masterlocation-id-field" %>
最终作品
$("#startdrop").change(function () {
var startidval = $(this).find('option:selected').attr('data-masterlocation-id');
$("#start-masterlocation-id-field").val(startidval);
});