2015-11-18 3 views
0

У меня есть автозаполнение, но не заполняя текстовое поле Моего 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> 

Это мои скрипты для показа автозаполнения.

Как заполнить значения в текстовое поле?

ответ

0

3 вещи, чтобы изменить:

1.) Добавить идентификатор в свой <li>

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

2.) Добавить $('#inputString').val(thisValue.innerHTML); в вашем function fill.

3.) Удалить onblur="fill();" от input тег не требуется.

+0

спасибо за ответ. Оно работает –

0

Поскольку возвращаемые данные являются динамическими данными, поэтому вы не можете записывать такие события. Пожалуйста, обратитесь к следующей ссылке In jQuery, how to attach events to dynamic html elements?

+0

спасибо, что ответ вы можете дать мне пример кода, пожалуйста? –

Смежные вопросы