在jsp中自动完成文本框

auto complete text boxes in jsp

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

好的,我已经找到了关于我的问题的解决方案。我的jsp页面中有三个文本框,当我在第一个文本框中输入任何数据时,控件将转到get.jsp以从数据库中检索数据,并填充第二个文本框。但我希望数据一次从第一个和第二个文本框进入get.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=" +str;
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="name" type="text" name="name" onkeyup="showState(this.value)">
<br>  
<div id='country'>  
</div>  
</body> 
</html>

--------get.jsp-------------

<%@page language="java" import ="java.sql.*" %>  
 <%  
 String name=request.getParameter("count");  
 String buffer="<div>";  
 //Got value from database 

while(rs.next()){
buffer=buffer+rs.getString(2)+"<br>";  
}  
buffer=buffer+"</div>";  
response.getWriter().println(buffer);  
%>

此处通过request.getParameter("count");我只得到一个文本框值,但如何通过在第一个和第二个文本框中输入数据来从auto.jsp中获得多个值。

只需在onkeyup上调用showState()函数,并在javascript函数中附加文本框的值。

var url="get.jsp";//goes to get.jsp
url += "?count=" +document.getElementById(<first textbox's id>).value;
url += "&secondVal="+document.getElementById(<second textbox's id>).value;

你可以像一样获得价值

String secondVal=request.getParameter("secondVal");