我的形式是这样,非常简单:
<script>
$(function() {
var availableProducts = [
<% @products.each do |p| %>"<%= p.id %> <%= p.title %> (<%= p.product_type.name %>)",<% end %>
""
];
$( "#tags" ).autocomplete({
source: availableProducts
});
});
</script>
这给了我一些名单,比如1 Title(Trade Paperback)。当然所有rails都需要id属性。我计划使用select:
事件使用属性更新隐藏字段,但是我不太确定如何从数据源中提取id来更新隐藏字段。< / strong>我应该将数据源更改为可以拥有密钥的内容吗?喜欢JSON?我仍然不知道如何从中提取。
以上是直接html中的代码:
<script>
$(function() {
var availableProducts = [
"1 Test Title (eBook)",
"2 Another Test Title (eBook)",
""
];
$( "#products" ).autocomplete({
source: availableProducts
});
});
</script>
答案 0 :(得分:2)
您的来源应该是{value:,label:}对的数组。标签将显示和自动完成,但您可以将值存储在隐藏的输入中。
以下是一个例子:
并在jquery-ui docs页面上查看此示例
http://jqueryui.com/demos/autocomplete/#custom-data
要从rails生成数组,您可以执行类似
的操作var availableProducts = <%= @products.collect { :label => p.title, :value => p.id }.to_json ->;