【问题标题】:How to do jQuery autocomplete that passes a id and not a name?如何进行传递 id 而不是名称的 jQuery 自动完成?
【发布时间】:2011-05-20 22:31:32
【问题描述】:

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

我有一个名字数组:

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

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

提前致谢

【问题讨论】:

    标签: jquery jquery-ui autocomplete jquery-autocomplete jquery-ui-autocomplete


    【解决方案1】:

    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 属性包含要显示的文本,value proberty 包含 id。当用户选择搜索结果时,可以检查这些值。该控件有一个您可以监听的@987654322@ 事件。

    【讨论】:

      【解决方案2】:

      您需要将 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;
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-11
        • 2014-12-23
        • 1970-01-01
        • 2021-02-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多