Display entire list upon entering a jQuery autocomplete textbox
我正在使用jQuery自动完成插件。 有没有办法当用户输入文本框(连接到自动完成)时,列表会显示顶部的字母项? 某种触发器?
jQuery代码
1 | $('.someTextbox').autocomplete({<br /> source: function (request, response) {<br /> $.ajax({<br /> url: serviceUrl +"/AddDocumentLinesService.svc/GetLineTypes",<br /> contentType:"application/json; charset=utf-8",<br /> dataType:"json",<br /> cache: false, <br /> data: {<br /> maxRows: 10,<br /> textStartsWith: request.term<br /> },<br /> success: function (data) {<br /> response($.map(data, function (item) {<br /> return {<br /> label: item.LineTypeCode + ' - (' + item.Description + ')',<br /> value: item.LineTypeCode<br /> }<br /> }));<br /> },<br /> error: function (XMLHttpRequest, textStatus, errorThrown) {<br /> alert(textStatus);<br /> }<br /> });<br /> }<br />}); |
我希望第二个用户输入列表出现的'$('。someTextbox')'文本框。
尝试:
1 | $('.someTextbox').focus(function() { $(this).search(); }); |
根据文档,.search()会手动触发搜索。您还可以将
也许您可以尝试将
另一个选项是连接到文本框的焦点事件并手动触发自动完成功能。也许你可以用这样的东西"欺骗"自动完成:
1 2 3 4 5 6 | $('.sometextbox').focus(function() { if ($('.sometextbox').val().length ==0) { //no text entered yet $('.sometextbox').val(' '); //insert 2 white spaces in order to trigger the autocomplete } }); |
所有的答案都是正确的。我添加了这个,因为minChars在新版本中被弃用。
使用minLength。
组
此外,您可以考虑使用文本字段旁边的按钮,其类似于下拉菜单和所有可用选项的切换
快乐的编码!
编辑
此外,由于您正在加载整个列表,因此可以将延迟设置为0,从而覆盖您可能已提到的现有延迟行为。
1 | $('input#textboxid').autocomplete('search','','delay',0); |