Я знаю, что это старое, но вот что я делаю, чтобы скрытое поле заполнялось уникальным идентификатором, который никогда не отображался, и предоставлял пользователю поле автозаполнения, основанное на отображаемых значениях:
<script type="text/javascript">
var picklist = [
{ id: "1", value: "One" },
{ id: "2", value: "Two" },
{ id: "3", value: "Three" },
{ id: "4", value: "Four" }
];
$().ready(function() {
$("#pickValue").autocomplete(picklist, {
minChars: 0,
max: 12,
autoFill: true,
mustMatch: true,
matchContains: false,
scrollHeight: 220,
formatItem: function(row, i, total) {
return row.value;
},
formatResult: function(row) {
return row.value;
}
});
$('input#pickValue').result(function(event, data, formatted) {
$('#pickID').val( !data ? '' : data.id);
});
});
</script>