我一直在寻找jQuery UI Autocomplete,因为我需要<input />
,但问题是我需要传递已完成名称的id。让我解释一下:
我有一系列名字:
$names = array(
array('name' => 'John', id => '1'),
array('name' => 'Sarah', id => '2'),
array('name' => 'Josh', id => '3)
);
然后,使用AJAX,输入将使用数组的一个名称自动完成,但是当我提交时,我需要id而不是名称。我该如何管理?
提前致谢
答案 0 :(得分:14)
JQuery UI Autocomplete控件可以接受搜索结果列表作为一组显示/值对象。
从内存中,您可以使用以下格式创建Json对象...
[
{label:"Display Name for result 1", value:1},
{label:"Display Name for result 2", value:2},
{label:"Display Name for result 3", value:3}
]
label属性包含要显示的文本,值proberty包含id。当用户选择搜索结果时,可以检查这些值。该控件有一个select
事件,您可以监听。
答案 1 :(得分:8)
您需要将ID保存到隐藏字段中。
您可以在“选择”事件中实现此目的。 http://jqueryui.com/demos/autocomplete/#event-select
此示例显示了选择事件http://jqueryui.com/demos/autocomplete/#custom-data
所以我的想法就是做这样的事情:
select: function( event, ui ) {
$( "#project-id" ).val( ui.item.value );
return false;
}