1

我试图让自己成为一个基于 jQueryUI 的自动完成功能的小 jQuery 插件,因为我有很多不同的自动完成字段,我想以不同的方式对待它们。

尽管我的插件的所有其他部分都工作正常,但它做了一件我不明白的事情。尽管 onSelect 函数明确定义了这一点:

box.val(ui.item.nazev); // item name
boxID.val(ui.item.value);

我可以通过在完成后列出这些元素值来确认,对于用户,框元素以某种方式显示 ui.item.value

我尝试了所有我能想到的可能性,但都没有奏效……我很绝望。

插件包含在这里:http: //jsfiddle.net/meridius/AVA6M/


编辑:

好的,它又快又脏,但我设法让它在没有 AJAX 的 jsfiddle.net 中工作。它并不完美(结果不会被过滤为打字),但是当您选择一些结果时,您可以明白我的意思。

4

1 回答 1

1

在此处输入图像描述

使用 Chrome (F12) 调试你的小提琴我在第 2257 行 o jquery-1.9.1.js 发现了你的问题。这是事件传播的问题,因此以下代码应该可以解决您的问题。

select: function (event, ui) {
            o.onSelect(event, ui, box, boxID);
            return false; //This line stops event propagation solving the problem.
},

注意:有关如何停止事件传播的详细信息,请参阅这篇文章。event.preventDefault() 与返回 false

于 2013-03-21T16:05:41.960 回答