input元素显示的值不是它的值

时间:2013-03-21 13:12:35

标签: jquery html jquery-plugins input jquery-ui-autocomplete

我正在努力使自己成为一个基于jQueryUI自动完成的jQuery插件,因为我有很多不同的自动填充字段,我想以不同的方式对待。

虽然我的插件的其他部分工作正常但它做了一件我不理解的事情。 尽管onSelect功能明确定义了这一点:

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

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

我尝试了所有我能想到的可能性,它们都没有奏效......我非常绝望。

此处包含插件:http://jsfiddle.net/meridius/AVA6M/


修改:

好吧,这很快又很脏,但我设法让它在没有AJAX的jsfiddle.net中运行。它并不完美(结果不会因为打字而被过滤),但是当你选择一些结果时,你可以看到我的意思。

1 个答案:

答案 0 :(得分:1)

enter image description here

使用Chrome(F12)来调试你的小提琴我在第2257行或者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() vs. return false