jQuery:有关自动完成和键的问题

发布于 2024-10-20 07:34:19 字数 716 浏览 4 评论 0原文

我有一个多重选择和一个自动完成输入。每次用户在自动完成输入中插入一个元素时,我想在多重选择中选择相应的元素。

我有这样的代码:

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"}

问题:“key”(value=" + key + ") 的值始终为 18,即使我选择 element_17 也是如此。

知道我应该更改/添加什么吗?

问候

哈维

I have a multiple select and an autocomplete input. Each time the user insert an element in the autocomplete input I would like to select the corresponding element in the multiple select.

I have this code:

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);


});

The action autocomplete is returning this kind of data:

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

The problem: the value of "key" (value=" + key + ") is always 18, even when i select element_17.

Any idea what should i change/add?

Regards

Javi

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

终难愈 2024-10-27 07:34:19

好的,那么到底发生了什么,您的自动完成数据格式不正确。

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

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

这样 你需要发送一个看起来像这样的元素数组

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

Ok, so what is going on, is you are formating your data incorrectly for your auto complete.

you want each auto-complete element to look like

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

And you would need to send down an array of elements that looks like this

[ { 'key' : '17', 'value' : 'element 17' },
  { 'key' : '18', 'value' : 'element 18' } ]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文