2013-03-21 30 views
1

我想让自己有点jQuery插件基于jQueryUI的自动完成,因为我有很多不同的自动填充字段,我想对待不同。输入元素显示的东西比它有价值

虽然我的插件的其他部分工作正常,但它做了一件我不明白的事情。 尽管该ONSELECT功能明确规定了这一点:

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

,我可以通过上市后其价值一直在做了这些元素,用户箱体构件以某种方式显示ui.item.value

我试图确认我能想到的每一种可能性,他们都没有工作......我非常绝望。

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


编辑:

OK,它的快速和肮脏的,但我设法使它在jsfiddle.net工作,没有AJAX。这并不完美(结果不会像输入那样过滤),但是当您选择某个结果时,您可以看到我的意思。

+0

你调试了你的脚本吗?有些F12可以给你答案。 – daniloquio 2013-03-21 13:23:22

+0

F12是什么意思?我使用Web控制台和Firebug,他们都没有告诉我任何错误。 – meridius 2013-03-21 13:34:26

+0

对于F12我的意思是,Firebug在Firefox的情况下。你应该使用firebug来调试你的脚本并且分析box元素值改变的确切时刻。在这里,您向我们提供了大量的信息,并且帮助您解决问题需要很多工作,因为小提琴不起作用。除非你编辑你的帖子缩小了代码方面的问题,否则你不太可能得到一些答案。 – daniloquio 2013-03-21 13:49:22

回答

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

+0

谢谢,解决了我的问题。也感谢您的链接。 顺便说一句,我已经在原代码中返回false(现在是onSelect的最后一行),我只是在“pluginifacion”期间移动它。奇怪的是,它不会影响select:event,同时它也会返回false。 – meridius 2013-03-21 17:46:17

+0

很高兴我有帮助:)找到问题的方法是在onSelect函数中放置一个断点,并从那里继续按F11(调试时转到下一步)。 – daniloquio 2013-03-22 15:05:37