2009-05-29 100 views
4

当我单击文本框而不输入任何内容时,如何使用JQuery实现自动完成功能。 String []将返回预建列表。JQuery自动完成文本框

+1

这是否表示您已经自动完成您的打字工作?如果没有,这个问题似乎很奇怪,因为打字是典型的自动完成功能的重要组成部分。 – 2009-05-29 17:05:19

+0

听起来你可能正在寻找一个组合框,你可以从列表中选择或添加一个新的项目?对John来说,自动完成的本质是它*完成了*部分存在的事情。 – 2009-05-29 19:12:05

回答

2
<pre>'<input type="text"/><div class=displayPanel></div>'</pre> 

$ JQ( '输入')。绑定( '点击',函数(){

$ JQ( 'displayPanel ')。了slideDown(' 慢',函数(){

this.text = textarray;

});

});

我不知道这是你需要的但是。

2

自动完成插件(http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/)是您最好的选择,尤其是当您处于AJAXy应用程序中时,因为它会关闭您的服务器并实时获取可能的列表。

实例应用:

$("#sometextbox").autocomplete("search.php", { 
    width: 260, 
    selectFirst: false 
}); 

然后search.php中可能会返回:

Great Bittern|Botaurus stellaris 
Little Bittern|Ixobrychus minutus 
American Bittern|Botaurus lentiginosus 

可以动态地生成的输出也一样,因为插件通过文字上的查询字符串输入的,在'q'参数。

在回答射击自动完成,而无需输入任何内容,插件不支持,但它会相当简单的hackish的方式实现:

插件钩到的keydown(或按键)的情况下,中,像这样(非缩小的代码的92线):

$input.bind(($.browser.opera ? "keypress" : "keydown") + ".autocomplete",...) 

因此,你可能会迫使autocompleter通过执行类似运行:

$("#autocompletedInput").click(function() { 
    $(this).trigger(($.browser.opera ? "keypress" : "keydown") + ".autocomplete"); 
} 

其中应该开火事件。您可能需要将随机字符键码传递给触发器,所以它不会怀疑发生了什么。