7

我一直在寻找 jQuery UI Autocomplete,因为我需要 a<input />但问题是我需要传递已完成名称的 id。让我解释:

我有一个名字数组:

$names = array(
    array('name' => 'John', id => '1'),
    array('name' => 'Sarah', id => '2'),
    array('name' => 'Josh', id => '3)
);

然后,使用 AJAX,输入将使用数组的一个名称自动完成,但是当我提交时,我需要 id 而不是名称。我该如何管理?

提前致谢

4

2 回答 2

14

JQuery UI 自动完成控件可以接受搜索结果列表作为一组显示/值对象。

从内存中,您创建以下格式的 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您可以监听的事件。

于 2010-12-06T11:47:10.630 回答
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;
        }
于 2010-12-06T11:48:30.063 回答