2011-03-04 83 views
0

的问题,我有多个选择,并自动完成输入。每次用户在自动完成输入插入一个元素我想选择的多个选择中的对应元素。jQuery的:有关自动完成和按键

我有这样的代码:

jQuery("#example") 
.autocomplete('autocomplete', jQuery.extend({}, { 
dataType: 'json', 
parse: function(data) { 

    var parsed = []; 
    for (key in data) { 

    parsed[parsed.length] = { data: [ data[key], key ], value: data[key], result: data[key] }; 
    } 

    return parsed; 

    } 
}, {multiple:true})) 
.result(function(event, data) { 
$("#select option[value=" + key + "]").attr("selected", true); 


}); 

动作自动完成正在返回该类型的数据:

{"17":"element_17","18":"element_18"} 

的问题:“关键”的价值(value=" + key + ")始终是18,甚至当我选择element_17。

任何想法,我应该怎么改/加?

问候

哈维

回答

0

好了,这是怎么回事,是你被错误地在格式化您的数据为您自动完成。

希望每个自动完成元素看起来像

{ 'key' : '17', 'value' : 'element 17' } 

而且你需要发送下来元素的数组,看起来像这样

[ { 'key' : '17', 'value' : 'element 17' }, 
    { 'key' : '18', 'value' : 'element 18' } ] 
+0

你的意思是{“关键”: '17', '值': '元件17'},{ '键': '18', '值': '元件18'}(没有 “[” 和 “]”)? – ziiweb 2011-03-04 15:08:32

+0

不,我的意思是用[],即是这样的阵列中JSON – 2011-03-04 19:23:47

+0

实现我现在已经在Firebug的响应选项卡,你说什么,并在JSON选项卡,我有这样的:0 对象{键=“17 “值= ”元件17“} 键 ”17“ 值 ”元件17“ 对象{键= ”18“,值= ”元件18“} 键 ”18“ 值 ”元素18“。但是,当我写的“厄尔尼诺”(“元”)不出现“元素18”,也不是“元素17” .. – ziiweb 2011-03-07 16:26:39