JQuery自动完成文本框

时间:2009-05-29 15:22:56

标签: jquery autocomplete

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

3 个答案:

答案 0 :(得分:2)

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

$ jq('input')。bind('click',function(){

  

$ jq('。displayPanel')。slideDown('slow',function(){

     
    

this.text = textarray;

  
     

});

});

我不知道这是否是你所需要的。

答案 1 :(得分: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(或keypress)事件,就像这样(非缩小代码的第92行):

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

因此,您可以通过执行以下操作来强制执行自动填充程序:

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

哪个应该触发事件。您可能需要将随机字符键码传递给触发器,因此它不会想知道发生了什么。

答案 2 :(得分:0)

您是否尝试过jQuery的一个自动完成插件?

即。 http://plugins.jquery.com/project/js-autocomplete,但还有其他几个。