单击jQuery autoComplete查看全部?

Rio*_*Rio 59 jquery autocomplete jquery-autocomplete

我以一种相对简单的方式使用jQuery的自动完成:

$(document).ready(function() {
  var data = [ {text: "Choice 1"}, 
               {text: "Choice 2"}, 
               {text: "Choice 3"} ]

$("#example").autocomplete(data, {
  matchContains: true,
  minChars: 0,
  formatItem: function(item) 
    { return item.text; }
    }
  );
  });
Run Code Online (Sandbox Code Playgroud)

如何添加一个onclick事件(如按钮或链接),它将显示自动完成的所有可用选项?基本上我正在寻找自动完成和选择/下拉元素的混合.

谢谢!

Tom*_*nti 99

您可以触发此事件以显示所有选项:

$("#example").autocomplete( "search", "" );
Run Code Online (Sandbox Code Playgroud)

或者参见下面链接中的示例.看起来就像你想要做的.

http://jqueryui.com/demos/autocomplete/#combobox

编辑(来自@cnanney)

注意:您必须在自动完成中为空搜索字符串设置minLength:0以返回所有元素.

  • 对我来说很棒.您必须在自动完成中设置`minLength:0`以获取空搜索字符串以返回所有元素.我被设置为1,并花了一点时间来弄清楚为什么不工作. (45认同)
  • 这完美地工作!我改变了一点,在我的输入元素上放了`onfocus ="javascript:$(this).autocomplete('search','');"`.谢谢您的帮助! (4认同)
  • 这是正确的答案.如果有一个`.show()`选项会很好! (2认同)

Cra*_*aig 36

我觉得这个效果最好

var data = [
    { label: "Choice 1", value: "choice_1" },
    { label: "Choice 2", value: "choice_2" },
    { label: "Choice 3", value: "choice_3" }
];

$("#example")
.autocomplete({
    source: data,
    minLength: 0
})
.focus(function() {
    $(this).autocomplete('search', $(this).val())
});
Run Code Online (Sandbox Code Playgroud)

它搜索标签并将值放入元素$(#example)

  • 我最喜欢这个答案,因为如果您使用<key> Tab </ key>在输入之间切换焦点,则很明显文本输入具有自动完成功能.有些人不使用鼠标点击一切;) (3认同)

kar*_*m79 18

我无法在文档中看到明显的方法,但您尝试在启用自动填充的文本框上触发焦点(或单击)事件:

$('#myButton').click(function() {
   $('#autocomplete').trigger("focus"); //or "click", at least one should work
});
Run Code Online (Sandbox Code Playgroud)

  • 请参阅Tom Pietrosanti关于如何在不使用触发器或按钮的情况下执行此操作的答案. (2认同)
  • 请参阅下面的Craig的答案. (2认同)

Nin*_*ils 7

为了显示所有项目/模拟组合框行为,首先应确保将minLength选项设置为0(默认值为1).然后,您可以绑定click事件以使用空字符串执行搜索.

$('inputSelector').autocomplete({ minLength: 0 });
$('inputSelector').click(function() { $(this).autocomplete("search", ""); });
Run Code Online (Sandbox Code Playgroud)


小智 5

尝试这个:

    $('#autocomplete').focus(function(){
        $(this).val('');
        $(this).keydown();
    }); 
Run Code Online (Sandbox Code Playgroud)

minLength设置为0

每次都可以工作:)


小智 5

解决方案来自:在焦点事件上显示jquery ui自动完成列表

使它多次运行的解决方案

<script type="text/javascript">
$(function() {
    $('#id').autocomplete({
        source: ["ActionScript",
                    /* ... */
                ],
        minLength: 0
    }).focus(function(){     
        //Use the below line instead of triggering keydown
        $(this).data("autocomplete").search($(this).val());
    });
});
Run Code Online (Sandbox Code Playgroud)


Bra*_*ane 5

必须设置minLength为零才能使其工作这是工作示例。

$( "#dropdownlist" ).autocomplete({
      source: availableTags,
      minLength: 0 
    }).focus(function() {
      $(this).autocomplete('search', $(this).val())
    });
});
Run Code Online (Sandbox Code Playgroud)