Jquery 输入元素显示其值以外的内容

Jquery 输入元素显示其值以外的内容,jquery,html,jquery-plugins,input,jquery-ui-autocomplete,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 我尝试了我能想到的所有

我正试图在jQueryUI的自动完成功能的基础上为自己制作一个小jQuery插件,因为我有很多不同的自动完成字段,我想对它们进行不同的处理

虽然我的插件的其他部分都工作得很好,但有一件事我不明白。 尽管onSelect函数明确定义了这一点:

box.val(ui.item.nazev); // item name
boxID.val(ui.item.value);
完成后,我可以通过列出这些元素的值来确认,对于用户来说,box元素以某种方式显示ui.item.value

我尝试了我能想到的所有可能性,但没有一个成功。。。我非常绝望

此处包含插件:


编辑:

好的,它很快也很脏,但是我在没有AJAX的情况下成功地使它在JSFIDLE.net中工作。它并不完美(输入时不会过滤结果),但当您选择某个结果时,您可以看到我的意思。

使用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.
},
注意:有关如何停止事件传播的详细信息,请参阅本文

使用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.
},

注意:有关如何停止事件传播的详细信息,请参阅本文

你调试过你的脚本吗?一些F12可以给你答案。你说F12是什么意思?我使用了Web控制台和Firebug,但没有一个显示出任何错误。对于F12,我的意思是,Firebug在Firefox中。您应该使用firebug调试脚本,并分析box元素值更改的确切时刻。在这里,你给了我们很多信息,帮助你解决这个问题需要做很多工作,因为小提琴不起作用。除非你编辑你的文章,从代码的角度缩小问题范围,否则你不太可能得到一些答案。我还试图在Firebug中调试它,但看起来我已经在上面写过了-onSelect部分确实为box和boxID元素设置了正确的文本,但在完成后我失去了跟踪,这就是它被混淆的地方。我不知道下一步该把断点放在哪里。通过使用小提琴,我找到了解决您问题的方法。我发布了一个答案,请查看。你调试过你的脚本吗?一些F12可以给你答案。你说F12是什么意思?我使用了Web控制台和Firebug,但没有一个显示出任何错误。对于F12,我的意思是,Firebug在Firefox中。您应该使用firebug调试脚本,并分析box元素值更改的确切时刻。在这里,你给了我们很多信息,帮助你解决这个问题需要做很多工作,因为小提琴不起作用。除非你编辑你的文章,从代码的角度缩小问题范围,否则你不太可能得到一些答案。我还试图在Firebug中调试它,但看起来我已经在上面写过了-onSelect部分确实为box和boxID元素设置了正确的文本,但在完成后我失去了跟踪,这就是它被混淆的地方。我不知道下一步该把断点放在哪里。通过使用小提琴,我找到了解决您问题的方法。我贴了一个答案,请查看。谢谢,这解决了我的问题。也谢谢你的链接。顺便说一句,我已经在原始代码中返回false(onSelect的最后一行),我只是在“pluginifacion”期间移动了它。奇怪的是,它不会影响select:事件,同时返回false。很高兴我能提供帮助:)找到问题的方法是在onSelect函数中放置一个断点,然后继续按F11(调试时转到下一步)。谢谢,这解决了我的问题。也谢谢你的链接。顺便说一句,我已经在原始代码中返回false(onSelect的最后一行),我只是在“pluginifacion”期间移动了它。奇怪的是,它不会影响select:事件,同时返回false。很高兴我能提供帮助:)找到问题的方法是在onSelect函数中放置一个断点,然后继续按F11(调试时转到下一步)。