我正在使用这个jquery自动完成插件。自动完成的数据格式如下所示
"name"=>"1" format.
我只是在下拉列表中显示产品的名称,显示产品的ID非常不安全。但是当我提交时,我需要选择产品的ID。为此,我试图给输入文本字段赋予一个属性,如此
input type='text' name='product' productid=''
现在,当用户选择任何产品时,productid属性应该获得此值。如何解决这个问题
答案 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