【问题标题】:Autocomplete can't filling textbox自动完成无法填充文本框
【发布时间】:2016-02-20 00:48:46
【问题描述】:

我有自动完成但没有填充文本框 我的 Java 代码:

 String string=request.getParameter("queryString");
 try
 {
  String connectionURL = "jdbc:mysql://localhost:3306/path";
  Connection con;
  Class.forName("com.mysql.jdbc.Driver");
  con = DriverManager.getConnection(connectionURL, "root", ""); 
  String sql = "SELECT name FROM jsample WHERE name LIKE '%"+
                string+"%' LIMIT 10";
  Statement stm = con.createStatement();
  stm.executeQuery(sql);
  ResultSet rs= stm.getResultSet();
  while (rs.next ())
  {
   out.println(
     "<li onclick='fill("+rs.getString("name")+
     ");'>"+rs.getString("name")+"</li>"
   );
  }
 } catch(Exception e) {
   out.println("Exception is ;"+e);
 }

这是我获取值的脚本:

 <head>
  <script type="text/javascript" src="js/jquery.min.js"></script> 
  <script type="text/javascript">
   function lookup(inputString)
   {
    if(inputString.length == 0)
    {
     $('#suggestions').hide();
    } else {
     $.post(
      "states.jsp", 
      {queryString: ""+inputString+""},
      function(data)
      {
       if(data.length >0)
       {
        $('#suggestions').show();
        $('#autoSuggestionsList').html(data);
       }
      });
    }
   }
   function fill(thisValue)
   {
    $('#inputString').val(thisValue);
    setTimeout("$('#suggestions').hide();", 200);
   }
  </script>
  <link rel="stylesheet" href="css/style-au.css"/>
 </head>
 <body>
  <div>
   <form>
    <div>
     <h3><font color="red">Name Selected</states></font></h3><br />
     Enter Name from database to see autocomplete
     <input type="text" size="30" value="" id="inputString" 
      onkeyup="lookup(this.value);" onblur="fill();" />
    </div>
    <div class="suggestionsBox" id="suggestions" style="display: none;">
     <div class="suggestionList" id="autoSuggestionsList"></div>
    </div>
   </form>
  </div>
 </body>

这是我显示自动完成的脚本。

如何将值填充到文本框?

【问题讨论】:

    标签: java jsp autocomplete


    【解决方案1】:

    由于返回的数据是动态数据,所以无法捕获此类事件。请参考以下链接 In jQuery, how to attach events to dynamic html elements?

    【讨论】:

    • 谢谢你的回答,你能给我例子代码吗?
    【解决方案2】:

    要改变的三件事:

    1.) 将 id 添加到您的 &lt;li&gt;

    out.println("<li onclick='fill("+rs.getString("name")+");' id='"+rs.getString("name")+"' >" + rs.getString("name") + "</li>");
    

    2.) 在您的function fill 中添加$('#inputString').val(thisValue.innerHTML);

    3.) 从input 标记中删除onblur="fill();",这不是必需的。

    【讨论】:

      猜你喜欢
      • 2017-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-10
      • 1970-01-01
      相关资源
      最近更新 更多