当我点击文本框而没有输入任何内容时,如何使用JQuery实现自动完成功能。 String []将返回预建列表。
答案 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,但还有其他几个。