【问题标题】:JQuery Autocomplete textboxJQuery 自动完成文本框
【发布时间】:2012-06-24 13:10:29
【问题描述】:

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

【问题讨论】:

  • 这是否意味着您已经自动完成了您的打字工作?如果不是,这个问题似乎很奇怪,因为打字是典型自动完成功能的重要组成部分。
  • 听起来您可能正在寻找一个可以从列表中选择或添加新项目的组合框?在约翰看来,自动完成的本质是它完成部分存在的东西。
  • 嗨,约翰,我已经可以使用自动完成功能了。

标签: jquery autocomplete


【解决方案1】:
<pre>'<input type="text"/><div class=displayPanel></div>'</pre>

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

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

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' 参数。

    在不输入任何内容的情况下触发自动完成,插件不支持这一点,但以黑客的方式实现相当简单:

    插件挂钩到框的 keydown(或 keypress)事件,如下所示(非缩小代码的第 92 行):

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

    因此,您可以通过执行以下操作强制自动完成器运行:

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

    应该触发事件。您可能需要将随机字符键码传递到触发器中,所以它不知道发生了什么。

    【讨论】:

    • 我有自动完成功能,因为我使用了相同的 bassistance 自动完成代码。但是文本框的 onclick 没有触发....有什么原因吗?
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-26
      • 2014-12-15
      • 1970-01-01
      • 1970-01-01
      • 2017-04-27
      • 1970-01-01
      • 2011-04-18
      相关资源
      最近更新 更多