天天看點

仿google輸入框

---------------code.jsp------------------

<%@include file="/internet/common.jsp"%>

<link rel="stylesheet" href="/pageComponent/resources/theme/style.css" target="_blank" rel="external nofollow" type="text/css" />

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<style type="text/css">

?<!--

?.style1 {

??color: #FF0000

?}

?

?.mouseOut {

??font-size: 12px;

??background: #708090;

??color: #FFFAFA;

?}

?

?.mouseOver {

??font-size: 12px;

??background: #FFFAFA;

??color: #000000;

?}

?-->

?</style>

<script type="text/javascript" language="javascript">

??var xmlHttp;

??????? var completeDiv;

??????? var inputField;

??????? var nameTable;

??????? var nameTableBody;

??????? var flag=false;

??????? function createXMLHttpRequest() {

??????????? if (window.ActiveXObject) {

??????????????? xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

??????????? }

??????????? else if (window.XMLHttpRequest) {

??????????????? xmlHttp = new XMLHttpRequest();???????????????

??????????? }

??????? }

???????

??????? function setflag(){

??????????? flag = true;

??????? }

???????

??????? function DisSelect()

??????? {

??????????? if(flag==false)

??????????? document.getElementById("popup").style.display="none";

??????? }

??????? function initVars() {

??????????? inputField = document.getElementById("frmchangshang");???????????

??????????? nameTable = document.getElementById("name_table");

??????????? completeDiv = document.getElementById("popup");

??????????? nameTableBody = document.getElementById("name_table_body");

??????????? document.getElementById("popup").style.display="block";

??????? }

??????? function findNames() {

??????????? initVars();

??????????? if (inputField.value.length > 0)

??? {

??????????????? createXMLHttpRequest();

??????????????? var url = "search.jsp?names=" + inputField.value;?? //?ヨ?㈡?版??椤甸????????????????? xmlHttp.open("GET", url, true);

??????????????? xmlHttp.onreadystatechange = callback;

??????????????? xmlHttp.send(null);

??????????? }

??? else

?? {

??????????????? clearNames();

??????????? }

??????? }

??????? function callback() {

??????????? if (xmlHttp.readyState == 4) {

??????????? ?alert(xmlHttp.responseXML.getElementsByTagName("name")[0].firstChild.data);

??????????????? if (xmlHttp.status == 200)

??????????????? {

???? try

??????????????????? {

??????????????????????? var name = xmlHttp.responseXML.getElementsByTagName("name")[0].firstChild.data;

??????????????????? }

??????????????????? catch(e)

??????????????????? {

??????????????????????? document.getElementById("popup").style.display="none";

??????????????????????? clearNames();

??????????????????? }

??????????????????? setNames(xmlHttp.responseXML.getElementsByTagName("content"));

??????????????? }

??????????????? else if (xmlHttp.status == 204)

??????????????? {

??????????????????? clearNames();

??????????????? }

??????????? }

??????? }

???????

??????? function setNames(the_names) {???????????

??????????? clearNames();

??????????? var size = the_names.length;

??????????? setOffsets();

??????????? var row,cell,spans;

??????????? for (var i = 0; i < size; i++) {

??????????????? //var nextNode = the_names[i].firstChild.data;

??? var e = the_names[i];

??? //??寰?瀛????瑰??瀹癸????拌?杞戒負?扮?

??? var nextNode=e.getElementsByTagName("name")[0].firstChild.data;

??? //??寤?r锛?td锛?span??绱?

??????????????? row? =document.createElement("tr");

??????????????? cell =document.createElement("td");

??? //spans=document.createElement("span");

??? //璁劇疆cell灞?????????????????? cell.onmouseout = function() {this.className='mouseOver'; flag=false;};

??????????????? cell.onmouseover = function() {this.className='mouseOut'; flag=true;};

??????????????? cell.setAttribute("bgcolor","#FFFAFA");

??????????????? cell.setAttribute("border","0");

??????????????? //cell.setAttribute("onmouseover","setflag()");

??????????????? cell.onclick = function() { populateName(this); };

??? //灏?nextNode娣誨????d

??? var txtName = document.createTextNode(nextNode);

??? cell.appendChild(txtName);

??? //瑁?杞介?????版????pan??绱?

??? row.appendChild(cell);

??????????????? nameTableBody.appendChild(row);

??????????? }

??????? }

??????? function setOffsets() {

??????????? var end = inputField.offsetWidth;

??????????? var left = calculateOffsetLeft(inputField);

??????????? var top = calculateOffsetTop(inputField) + inputField.offsetHeight;

??????????? completeDiv.style.border = "black 1px solid";

??????????? completeDiv.style.left = left + "px";

??????????? completeDiv.style.top = top + "px";

??????????? nameTable.style.width="400px";

??????? }

???????

??????? function calculateOffsetLeft(field) {

????????? return calculateOffset(field, "offsetLeft");

??????? }

??????? function calculateOffsetTop(field) {

????????? return calculateOffset(field, "offsetTop");

??????? }

??????? function calculateOffset(field, attr) {

????????? var offset = 0;

????????? while(field) {

??????????? offset += field[attr];

??????????? field = field.offsetParent;

????????? }

????????? return offset;

??????? }

??????? function populateName(cell) {

??? //濉????版????eb椤甸???cell---->td瀵矽薄

??????????? inputField.value = cell.firstChild.nodeValue;

??????????? clearNames();

??????? }

??????? //娓??ゅ??琛ㄦ?扮?

??????? function clearNames() {

??????????? var ind = nameTableBody.childNodes.length;

??????????? for (var i = ind - 1; i >= 0 ; i--) {

???????????????? nameTableBody.removeChild(nameTableBody.childNodes[i]);

??????????? }

??????????? completeDiv.style.border = "none";

??????? }</script>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>Untitled Document</title>

</head>

<body>

<input name="frmchangshang" class="InputText" id="frmchangshang" style="width:250px;" 慰nblur="DisSelect();" 慰nkeyup="findNames();" size="50" maxlength="100" />

<span class="style1">??绀猴?杈??ュ?抽??瀛?锛?绋?搴????ㄤ?搴?涓??歸???ㄨ??劇??璁闆?锛?濡???涓?瀛??ㄨ??琛?濉??? </span>

<div style="position:absolute;top:0;left:0;" id="popup">

<table id="name_table" bgcolor="#FFFAFA" cellspacing="0" cellpadding="0">

?<tbody id="name_table_body"></tbody>

</table>

</div>

</body>

</html>

---------------search.jsp------------------

<%@page import="com.primeton.eos.access.*,java.sql.*"%>

<%

Connection conn = null;

ResultSet rs = null;

PreparedStatement stmt = null;

String keyword=request.getParameter("names");

if(keyword==null){

?keyword="";

}

String sql="select yr,bmmc from a_bm where yr like '%"+keyword+"%'";

System.out.println(sql);

response.setContentType("text/xml");

out.write("<?xml version="+"1.0"+" encoding="+"GB2312"+" ?>");

out.write("<response>");

out.write("<content>");

try {

?conn = DBConn.getConnection("c://test.mdb");

?stmt = conn.prepareStatement(sql);

?rs = stmt.executeQuery();

?while(rs.next()){

??System.out.println(rs.getString("bmmc"));

??out.write("<name>"+rs.getString("yr")+"</name>");

?}

}catch(Exception e){

?e.printStackTrace();?

}finally{

?DBConn.close(rs,stmt,conn);

}

out.write("</content>");

out.write("</response>");

%>

繼續閱讀