【问题标题】:Codes for autocomplete?自动完成代码?
【发布时间】:2014-07-22 11:15:44
【问题描述】:

我目前正在尝试编写一些代码来自动完成字段。我实际上已经完成了大约 90% 并且它一直工作到现在。

当我想在数据库中按姓氏搜索人时,例如以“s”开头,并在“输入姓氏”字段中键入“s”,所有以 s 开头的姓氏都是 显示。到目前为止,我对结果感到满意。请看下图:

但是,当用户单击下拉列表中的名称时,我无法编写适当的代码来允许在“输入姓氏”字段中填充名称。

有人可以帮我吗?我可以使用哪些代码来执行上述任务?

我对下拉列表中的每一行都使用了以下代码。 rs.getString(1) 表示从 MySQL 数据库中检索到的名称。

<div onclick='fill(rs.getString(1));'>rs.getString(1)</div>

另外,在html页面的头部,我声明了一个javascript函数如下:

<script type="text/javascript">

function fill(thisValue) {
           $('#inputString').val(thisValue);
}

</script>

我在想,当用户点击下拉列表中的名称时,会调用填充函数,并将函数的参数 thisValue 设置为 rs.getString(1)。最后,具有属性 id=inputString 的文本字段 Enter Last Name 的值将设置为 rs.getString(1)。因此,我将能够根据用户单击的内容填充文本字段 Enter Last Name。

但是,当我单击下拉列表中的名称时,没有任何反应。输入姓氏字段未填充任何数据。我必须手动输入名称,这违背了自动完成系统的目的。

有人可以指导我吗?

感谢阅读。

问候

【问题讨论】:

  • 看一下 jQuery TokenInput 库:loopj.com/jquery-tokeninput/
  • @user3391344 为什么不使用现有的 jQuery 库之一?例如,jQuery UI Autocomplete

标签: javascript jquery html mysql autocomplete


【解决方案1】:

div 添加一个类,如下所示。

<div class='row'>rs.getString(1)</div>

现在在 Jquery 中使用以下代码。

$(".row").click(function(e){
       $("#inputstring").val($(this).html());
 });

【讨论】:

    【解决方案2】:

    假设列表是&lt;ul class='list'&gt;&lt;li&gt;...

    // on clicking the li of ul class .list
    $('.list').on('click', 'li', function() {
        // put the text of the ul to the value of the input
        $('#inputString').val(this.text());
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-21
      • 1970-01-01
      相关资源
      最近更新 更多