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