如何操作jquery自动完成插件来获取id和值

时间:2012-01-19 12:44:32

标签: jquery jquery-ui jquery-autocomplete

我正在使用这个jquery自动完成插件。自动完成的数据格式如下所示

"name"=>"1" format. 

我只是在下拉列表中显示产品的名称,显示产品的ID非常不安全。但是当我提交时,我需要选择产品的ID。为此,我试图给输入文本字段赋予一个属性,如此

input type='text' name='product' productid=''

现在,当用户选择任何产品时,productid属性应该获得此值。如何解决这个问题

1 个答案:

答案 0 :(得分:0)

我认为你所追求的是select选项。

假设您的数据源是以下对象数组:

var data = [
    {
        label: 'Product 1',
        productid: '1'
    },
    {
        label: 'Product 2',
        productid: '2'
    },{
        label: 'Product 3',
        productid: '1'
    }];

默认情况下,插件会在对象中查找标签属性(如果缺少“值”,则会使用“标签”)。

注意:如果您提供一个值,当您在菜单中选择建议项目时,它将用于设置输入值!

所以我们的例子,属性productid实际上不会直接被插件使用,它不知道它,但我们可以在事件处理程序参数ui.item中访问它。 / p>

我要做的是添加一个隐藏字段来存储实际选定的值(而不是你在问题中建议的“productid”属性)。

<input type="hidden" id="productid" value="" />

js代码:

$("#myinput").autocomplete({
    source: data,
    // the 'select' event is triggered when an item is selected in the menu
    select: function(e, ui) {
        $("#productid").val(ui.item.productid);
        // if you want to add the "productid" attiubte
        $(this).attr('productid', ui.item.productid);
    }
});

工作DEMO