在同一个jsp页面内的文本框中自动完成

autocomplete in textbox inside same jsp page

本文关键字:文本 jsp 同一个      更新时间:2023-09-26

我正在修改内容。数据显示在<div>国家/地区,但如何自动填充auto.jsp中的文本框?我正在从get.jsp获取数据,get.jsp的内容正在<div>国家的auto.jsp上显示。

auto.jsp

<%@page import="java.sql.*"%>
<html>
    <head>  
        <script language="javascript" type="text/javascript">  
            var xmlHttp  
            var xmlHttp
            function showState(str){ 
                if (typeof XMLHttpRequest != "undefined"){
                    xmlHttp= new XMLHttpRequest();
                }
                else if (window.ActiveXObject){
                    xmlHttp= new ActiveXObject("Microsoft.XMLHTTP");
                }
                if (xmlHttp==null){
                    alert ("Browser does not support XMLHTTP Request")
                    return
                } 
                var url="get.jsp";//goes to get.jsp
                url += "?count=" +document.getElementById("textbox1").value;
                url += "&secondVal="+document.getElementById("textbox2").value;
                xmlHttp.onreadystatechange = stateChange;
                xmlHttp.open("GET", url, true);
                xmlHttp.send(null);
            }
            function stateChange(){   
                if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){   
                    document.getElementById("country").innerHTML=xmlHttp.responseText;  
                }   
            }   
        </script>  
    </head>  
    <body>  
        <input id="textbox1" type="text" name="name" onkeyup="showState(this.value)"/> 
        <input id="textbox2" type="text" name="secondVal" onkeyup="showState(this.value)"/>
        <br>  
        <div id='country'>
            Here Iam getting data from get.jsp
        </div>  
        <input type="text"/> //how to fill up this text box based on previous textbox 1 and textbox 2(written just above)?
    </body> 
</html>

get.jsp

<%
    String s=request.getParameter("count");//Got first textbox value
    out.println(s);
    String secondVal=request.getParameter("secondVal");// Got second textbox value
    out.println(secondVal);
    request.setAttribute("s", s);
%>
<input type="text" value="<%=s%>"/>

请参阅函数stateChange(),您正在更改country的值。因此,您可以更改此项以将结果也应用于其他元素,例如:

function stateChange(){   
  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){   
    document.getElementById("country").innerHTML = xmlHttp.responseText;  
    document.getElementById("textbox2").value = xmlHttp.responseText;
  }   
}