Tag: jquery ui autocomplete

如何使用.on()绑定jQuery UI自动完成?

live()方法回答了这个问题,但是从jQuery 1.7开始不推荐使用live()方法,并用.on()方法替换,这个答案对on()不起作用。 以下是之前的答案: 使用.live()绑定jQuery UI自动完成 任何人都知道如何用on()做同样的事情 ? 如果您将语法更改为类似的 $(document).on(“keydown.autocomplete”,[selector],function(){…}); 从 $([selector]).live(“keydown.autocomplete”,function(){…}); 它有点工作,但它以一种奇怪的方式与内部自动完成事件交互。 使用live(),如果使用select事件并访问event.target,它将为您提供input元素的id。 如果你使用on(),它会给你下拉菜单“ui-active-menuitem”的id。 像这样的东西: $( “.selector” ).autocomplete({ select: function(event, ui) { console.log(event.target.id); } }); 但是 – 如果您使用“开放”事件,它将为您提供我正在寻找的ID – 只是不在合适的时间(我选择它后需要它)。 此时,我正在使用一种解决方法,即在open事件函数中获取input元素的ID,将其存储在隐藏字段中,然后在我需要的select方法中访问它。

如何将jquery ui自动完成添加到动态创建的元素中?

我试图让jQueryUI AutoComplete触发动态创建的表单输入元素,但它不起作用。 我已尝试将keyup.autocomplete和keydown.autocomplete用作$ .live()中的绑定事件,但它绑定到新元素 – 仅限于页面上已有的元素。 在这里尝试代码(尝试在第一个输入中键入“ava”,然后单击“添加输入”并在新输入中键入相同内容)。 JavaScript的: $(function() { $(“input#addButton”).click(function() { $(“input.searchInput:last”).clone(true).appendTo($(this).closest(“form”)); $(“input.searchInput:last”).val(“”); }) $(“input.searchInput”).live(“keydown.autocomplete”, function() { $(this).autocomplete({ source: [ “ActionScript”, “AppleScript”, “Asp”, “BASIC”, “C”, “C++”, “Clojure”, “COBOL”, “ColdFusion”, “Erlang”, “Fortran”, “Groovy”, “Haskell”, “Java”, “JavaScript”, “Lisp”, “Perl”, “PHP”, “Python”, “Ruby”, “Scala”, “Scheme” ], minLength: 2 }); }) }); HTML:

根据匹配位置对自动完成UI结果进行排序

我想根据匹配发生的字符串中的位置对jQuery自动完成UI结果进行排序。 匹配是第一个字母的结果应优先于匹配位于字符串中间的结果。 搜索“M”应返回: 马特,迈克尔,萨姆,蒂姆,亚当,本杰明 相反,因为它现在只是按字母顺序返回项目,我得到了这个: 亚当,本杰明,马特,迈克尔,萨姆,蒂姆 不幸的是,看起来Autocomplete UI没有任何选项来执行此类操作,而只是按照收到的顺序显示结果。 让MySql执行排序不是一个选项,因为所有可能的匹配都是预加载的,因此我不会在每次按键时调用数据库。 有人做过这样的事吗?