⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 autocomplete.jsp

📁 Ajax 本教程介绍了jsp中实现Ajax技术
💻 JSP
字号:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<HTML><HEAD><TITLE>Shopping Online</TITLE>
	<META http-equiv=Content-Type content="text/html; charset=UTF-8">
	<LINK href="images/css.css" type=text/css rel=stylesheet>
</HEAD>
<script language="javascript">
	var XMLHttpReq;
    var completeDiv;
    var inputField;
    var completeTable;
    var completeBody;
    
    
 	//创建XMLHttpRequest对象       
    function createXMLHttpRequest() {
		if(window.XMLHttpRequest) { //Mozilla 浏览器
			XMLHttpReq = new XMLHttpRequest();
		}
		else if (window.ActiveXObject) { // IE浏览器
			try {
				XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			}
		}
	}
	//发送匹配请求函数
    function findNames() {
        inputField = document.getElementById("names");            
        completeTable = document.getElementById("complete_table");
        completeDiv = document.getElementById("popup");
        completeBody = document.getElementById("complete_body");
        if (inputField.value.length > 0) {
            createXMLHttpRequest();            
            var url = "autoComplete?action=match&names=" + escape(inputField.value);                        
            XMLHttpReq.open("GET", url, true);
            XMLHttpReq.onreadystatechange = processMatchResponse;//指定响应函数
            XMLHttpReq.send(null); // 发送请求
        } else {
            clearNames();
        }
    }
	// 处理返回匹配信息函数
    function processMatchResponse() {
    	if (XMLHttpReq.readyState == 4) { // 判断对象状态
        	if (XMLHttpReq.status == 200) { // 信息已经成功返回,开始处理信息
                    setNames(XMLHttpReq.responseXML.getElementsByTagName("res"));
            }else { //页面不正常
                window.alert("您所请求的页面有异常。");
            }
        }
    }
	//生成与输入内容匹配行
         function setNames(names) {            
            clearNames();
            var size = names.length;
            setOffsets();

            var row, cell, txtNode;
            for (var i = 0; i < size; i++) {
                var nextNode = names[i].firstChild.data;
                row = document.createElement("tr");
                cell = document.createElement("td");
                
                cell.onmouseout = function() {this.className='mouseOver';};
                cell.onmouseover = function() {this.className='mouseOut';};
                cell.setAttribute("bgcolor", "#FFFAFA");
                cell.setAttribute("border", "0");
                cell.onclick = function() { completeField(this); } ;                             

                txtNode = document.createTextNode(nextNode);
                cell.appendChild(txtNode);
                row.appendChild(cell);
                completeBody.appendChild(row);
            }
        }
	//设置显示位置                
        function setOffsets() {
            completeTable.style.width = inputField.offsetWidth; + "px";
            var left = calculateOffset(inputField, "offsetLeft");
            var top = calculateOffset(inputField, "offsetTop") + inputField.offsetHeight;
            completeDiv.style.border = "black 1px solid";
            completeDiv.style.left = left + "px";
            completeDiv.style.top = top + "px";
        }
 	//计算显示位置       
    function calculateOffset(field, attr) {
      var offset = 0;
      while(field) {
        offset += field[attr]; 
        field = field.offsetParent;
      }
      return offset;
    }
	//填写输入框
    function completeField(cell) {
        inputField.value = cell.firstChild.nodeValue;
        clearNames();
    }
	//清除自动完成行
    function clearNames() {
        var ind = completeBody.childNodes.length;
        for (var i = ind - 1; i >= 0 ; i--) {
             completeBody.removeChild(completeBody.childNodes[i]);
        }
        completeDiv.style.border = "none";
    }
	//搜索请求函数
    function search() {
        var sortName = document.getElementById("names");
        createXMLHttpRequest();            
        var url = "autoComplete?action=search&names=" + escape(inputField.value);                        
        XMLHttpReq.open("GET", url, true);
        XMLHttpReq.onreadystatechange = processSearchResponse;//指定响应函数
        XMLHttpReq.send(null); // 发送请求
    }
	// 处理返回匹配信息函数
    function processSearchResponse() {
    	if (XMLHttpReq.readyState == 4) { // 判断对象状态
        	if (XMLHttpReq.status == 200) { // 信息已经成功返回,开始处理信息
                var res=XMLHttpReq.responseXML.getElementsByTagName("res");
                if (res.length>0){
                	document.getElementById("content").value=res[0].firstChild.data;
                }
            }else { //页面不正常
                window.alert("您所请求的页面有异常。");
            }
        }
    }

</script>


<table  style="BORDER-COLLAPSE: collapse" borderColor=#111111 
            cellSpacing=0 cellPadding=2 width=400 bgColor=#f5efe7 border=0>
    <TR>
         <TD align=middle height=4 colspan="3"><IMG height=4 
         src="images/promo_list_top.gif" width="100%" 
         border=0>
		 </TD>
	</TR>
	<TR>
       <TD align=middle bgColor=#dbc2b0 
                    height=19 colspan="3"><B>商品信息搜索</B>
	   </TD>
	</TR>
	<tr>
        <td height="20">
			输入品牌关键字:
		</td>
		<td height="20">
			 <input type="text"	size="15" id="names" onkeyup="findNames();" style="height:20;">
	    <div style="position:absolute;" id="popup">
	        <table id="complete_table" bgcolor="#FFFAFA" border="0" cellspacing="0" cellpadding="0"/>            
	            <tbody id="complete_body"></tbody>
	        </table>
	    </div>
		</td>
		
	    
		<td height="20">
			 <img src="images/search.gif" onclick="search();">
		</td>
		
    </tr>
	<tr>
		<td height="20" valign="top" align="center">
			产品描述:
		</td>
        <td id="pos_1" height="80">
			<textarea id="content">

			</textarea>
		</td>
    </tr>
	
</table>


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -