Ruby on Rails 3.2.2 とjquery-rails 2.1.3 (jQuery UI を含む) を使用しています。Autocomplete jQuery UI ウィジェットを使用して都市データを検索、選択、および送信するために、HTML フォームを実装しようとしています。
現時点では、次の「オートコンプリート可能な」フィールドを使用してフォームを実装しています。
<div class="ui-widget">
<label for="cities">City: </label>
<input id="cities" />
</div>
<script>
$jQ(function() {
var cache = {};
$jQ( "#cities" ).autocomplete({
autoFocus: true,
minLength: 3,
source: function( request, response ) {
$jQ.ajax({
url: '<SEARCH_PATH>',
data: { search: request.term },
dataType: 'json',
success: function(data) {
var cities = new Array();
$jQ.each(data, function(arrayID, city) {
cities.push({ label: city.name, value: city.id })
});
response( cities );
},
error: function () {
response([]);
}
});
}
});
});
</script>
上記のコードは、JSON データを取得し、取得した都市のリストを表示するために期待どおりに機能します。ご覧のとおり、市のデータの「有用な部分」は市の です。これは、送信されたデータを内部で処理するために値をid
使用しているためです。id
ただし、都市の「選択可能な」リストが表示されている場合、キーボードの上矢印と下矢印を使用してそれらの都市の1つを選択すると、入力フィールドに都市が入力されますid
(都市ではありませんname
)。
私はしたいと思います:
- 都市を選択すると、入力フィールドに の
name
代わりに都市が表示されます。id
id
都市ではなく都市を送信する方法を見つけてname
ください(たとえname
フロント エンド コンテンツに表示されるのが都市だけであっても)。
それを適切に達成するにはどうすればよいですか?