http://jqueryui.com/demos/autocomplete/の「カスタム データと表示」の例を使用し、値と ID を次のように設定できるように少し単純化しました。
$(function() {
var prd = [
{ s: "hallo", v: "1" },
{ s: "hey", v: "2" },
{ s: "alloh", v: "3" }
];
$("#product").autocomplete({
source: prd,
minLength: 0,
focus: function(event, ui) {
$("#product").val(ui.item.s);
return false;
},
select: function(event, ui) {
$("#product").val(ui.item.s);
$("#productId").val(ui.item.v);
return false;
}
}).data("autocomplete")._renderItem = function(ul, item) {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a>" + item.s + "</a>")
.appendTo(ul);
};
});
問題は、minLength:0 がないとポップアップしないことです。minLength:0 を使用すると、空のテキスト ボックス (文字を入力してから削除) でのみポップアップします。