ご協力いただきありがとうございます。目標は、ドロップダウンから選択したオプションのデータを非表示フィールドに値として入れることです。私は 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>
Rails の非表示フィールドが表示されます
<%= 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);
});