Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery自动完成UI-I';I’我希望它在焦点上启动搜索,而用户不必键入任何内容_Jquery_Jquery Ui Autocomplete - Fatal编程技术网

jQuery自动完成UI-I';I’我希望它在焦点上启动搜索,而用户不必键入任何内容

jQuery自动完成UI-I';I’我希望它在焦点上启动搜索,而用户不必键入任何内容,jquery,jquery-ui-autocomplete,Jquery,Jquery Ui Autocomplete,jQuery自动完成UI—我想启动搜索“onfocus”,当用户在搜索字段中单击或单击时,立即显示选择列表,而不需要用户键入任何内容 默认行为似乎要求用户输入一个字符或向下箭头以开始滚动并开始搜索并获取值,即使我将所需的字符数设置为零 $( "#contact" ).autocomplete({ source: 'remote.php', minLength: 0 }); $(“#联系人”).autocomplete({ 来源:“remote.php”, 最小长度:0 }); 谢

jQuery自动完成UI—我想启动搜索“onfocus”,当用户在搜索字段中单击或单击时,立即显示选择列表,而不需要用户键入任何内容

默认行为似乎要求用户输入一个字符或向下箭头以开始滚动并开始搜索并获取值,即使我将所需的字符数设置为零

$( "#contact" ).autocomplete({ source: 'remote.php', minLength: 0 }); $(“#联系人”).autocomplete({ 来源:“remote.php”, 最小长度:0 }); 谢谢

$("#contact").focus(function() {
    if ($(this).val().length == 0) {
        $(this).autocomplete("search");
    }
});

确保您的自动完成的
minLength
为0。

比Emmett的答案复杂一点,但是

  • 即使框中已经包含文本,也会在焦点上弹出列表
  • 避免在单击项目后重新弹出列表
这是:

var closing = false;

$('#contact').autocomplete({
    source: 'remote.php',
    minLength: 0,
    close: function()
    {
        // avoid double-pop-up issue
        closing = true;
        setTimeout(function() { closing = false; }, 300);
    }
})
.focus(function() {
    if (!closing)
        $(this).autocomplete("search");
});

此解决方案对我不起作用,但它:

$('#contact').autocomplete({
source: 'remote.php',
minLength: 0
           }).focus(function(){
if (this.value == "")
$(this).trigger('keydown.autocomplete');
});
工作正常(来源:)

对我来说并不完全有效,因为在选择所需结果后,自动完成结果框会再次弹出。这是因为
.focus
方法是在
close:
事件之前执行的

此外,根据中的代码,一旦框关闭,它将不会重新打开,因为
关闭
变量由于
关闭:
之后执行而保持
为true

以下代码解决了这两个问题(注意
close:
事件中变量
closing
设置为false):


我发现这段代码有点干净,并且是特定于元素的

 $(<selector>).autocomplete({
            minLength: 0,
            delay: 500,
            source: funcDataLookUp,
            open: function() { $(this).attr('state', 'open'); },
            close: function () { $(this).attr('state', 'closed'); }
        }).focus(function () {
            if ($(this).attr('state') != 'open') {
                $(this).autocomplete("search");
            }
        });
$()。自动完成({
最小长度:0,
延误:500,
资料来源:funcDataLookUp,
open:function(){$(this).attr('state','open');},
关闭:函数(){$(this).attr('state','closed');}
}).focus(函数(){
如果($(this.attr('state')!='open'){
$(此)。自动完成(“搜索”);
}
});

尝试使用自动完成绑定
焦点

$("#contact").autocomplete({
        source: 'remote.php',
        minLength: 0
    }).bind('focus', function () {
        $(this).autocomplete("search");
    });

查看我的示例。

JQUERY实际上建议使用这种方法


基本上,您使用minLength:0和focus事件来搜索“.”

现在有点奇怪了。下拉列表现在要求使用向下箭头或双击选择。只需单击一次,即可将选项放入框中,但移动鼠标时选项不会保留。Firefox或IEA解决方案,仅使用JQuery autocomplete的参数。每个人都应该寻找的确切解决方案。实际上,您只需在autocomplete中使用minLength和focus的参数就可以做到这一点,而无需任何进一步的编码。参见androidmj的解决方案。
$("#contact").autocomplete({
        source: 'remote.php',
        minLength: 0
    }).bind('focus', function () {
        $(this).autocomplete("search");
    });
$('.yourclass').autocomplete({
   minLength: 0
   ,source:['blah','andblahagain']
   ,focus: function() {
     $(this).autocomplete("search", "");
   },
});