电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

使用Ajax模仿百度搜索框的自動提示功能實例

瀏覽:250日期:2022-06-11 10:35:20

啊啊,熬夜了。今天學習了ajax給我的感覺就是,”哇塞“ajax好酷炫哦,(額。。。后端狗,接觸到了大前端的魅力了),這么晚了還是直奔主題把。Let"s go!

百度搜索提示框,我想大家都很熟悉了把,是什么樣子我也就不再贅述。直接看代碼

來我們寫一個簡陋的jsp頁面 Look! 是這個樣子的

下面是代碼:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.xxx.org/TR/html4/loose.dtd"><html> <head>  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  <title>Test Baidu</title> </head> <body> 	<!--  	文本輸入框  --> 	<div id="serach"> 		<input type="text" name="text" id="text" /> 		<input type="submit" value="搜索" /> 	</div> 	 	<!--  	提示下拉框  -->  <div id="tips";>  </div>   	</body> 	<script> 		window.onload=function(){ 			//獲取文本輸入框 			var textElment = document.getElementById("text"); 			//獲取下提示框 			var div = document.getElementById("tips"); 			textElment.onkeyup=function(){ 				//獲取用戶輸入的值 				var text = textElment.value; 				//如果文本框中沒有值,則下拉框被隱藏,不顯示 				if(text==""){ 					div.style.display="none"; 					return; 				} 				//獲取XMLHttpRequest對象 				var xhr = new XMLHttpRequest(); 				//編寫回調函數 				xhr.onreadystatechange=function(){ 					//判斷回調的條件是否準備齊全 					if(xhr.readyState==4){ 						if(xhr.status==200){ 							//取的服務器端傳回的數據 							var str = xhr.responseText; 							 							//判斷傳回的數據是否為空,若是則直接返回,不顯示 							if(str==""){ 								return; 							} 							//我們將會在服務器端把數據用 , 隔開,當然這里也可以使用json 							var result = str.split(","); 							var childs = ""; 							//遍歷結果集,將結果集中的每一條數據用一個div顯示,把所有的div放入到childs中 							for(var i=0; i<result.length;i++){ 								childs += "<div onclick="Write(this)" onmouseout="recoverColorwhenMouseout(this)" onmouseover="changeColorwhenMouseover(this)">"+result[i]+"</div>"; 							} 							//把childs 這div集合放入到下拉提示框的父div中,上面我們以獲取了 							div.innerHTML=childs; 							div.style.display="block"; 						 						} 					} 				} 			 				//創建與服務器的連接 				xhr.open("GET","${pageContext.request.contextPath}/test?text="+text); 			  				//發送 				xhr.send(); 			} 		} 		//鼠標懸停時改變div的顏色 		function changeColorwhenMouseover(div){ 			div.style.backgroundColor="pink"; 		} 		//鼠標移出時回復div顏色 		function recoverColorwhenMouseout(div){ 			div.style.backgroundColor=""; 		} 		//當鼠標帶點擊div時,將div的值賦給輸入文本框 		function Write(div){ 			//將div中的值賦給文本框 			document.getElementById("text").value=div.innerHTML; 			 			//讓下拉提示框消失 			 			div.parentNode.style.display="none"; 		} 	</script></html>

再看servlet:

package com.zhuxingyi.servlet; import java.io.IOException;import java.util.ArrayList;import java.util.List; import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; /** * 百度下拉框服務器端 */@WebServlet("/test")public class test extends HttpServlet {	private static final long serialVersionUID = 1L; 	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		//獲取前端傳入的數據		String text = request.getParameter("text");		//我們在這里也還是向list集合中添加數據,模擬數據庫的查詢操作		System.out.println(text);		List<String> list =new ArrayList<>();		list.add("zhuxingyi");		list.add("zhuwei");		list.add("zhuyuanz");		list.add("zhude");				//將數據 轉換成字符串		String str = "";		if(text.startsWith("z")) {			for(int i=0;i<list.size();i++) {				if(i>0) {					str+=",";				}				str+=list.get(i);			}			//將處理好的數據傳回給客戶端			response.getWriter().write(str);		}			}  	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		// TODO Auto-generated method stub		doGet(request, response);	} }

演示一下看看呢,(很尷尬,樓主還不會做gif圖呢,各位先看看靜態圖把。。。)

輸入‘z"試一試呢:

點擊一下試一試呢:

Ok了,這就是一個簡單的模仿百度的搜索框啦,以上有不足的地方你一定要指出哦,謝謝。拜啦

以上這篇使用Ajax模仿百度搜索框的自動提示功能實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持。

標簽: Ajax
相關文章:
主站蜘蛛池模板: 智能气瓶柜(大型气瓶储存柜)百科 | 校园气象站_超声波气象站_农业气象站_雨量监测站_风途科技 | 河南档案架,档案密集架,手动密集架,河南密集架批发/报价 | 食药成分检测_调料配方还原_洗涤剂化学成分分析_饲料_百检信息科技有限公司 | 短信营销平台_短信群发平台_106短信发送平台-河南路尚 | 定坤静电科技静电消除器厂家-除静电设备 | 贴片电容代理-三星电容-村田电容-风华电容-国巨电容-深圳市昂洋科技有限公司 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 小小作文网_中小学优秀作文范文大全| 细石混凝土泵_厂家_价格-烟台九达机械有限公司 | 不锈钢管件(不锈钢弯头,不锈钢三通,不锈钢大小头),不锈钢法兰「厂家」-浙江志通管阀 | 定制异形重型钢格栅板/钢格板_定做踏步板/排水沟盖板_钢格栅板批发厂家-河北圣墨金属制品有限公司 | 不锈钢螺丝,不锈钢螺栓,不锈钢标准件-江苏百德特种合金有限公司 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | 锤式粉碎机,医药粉碎机,锥式粉碎机-无锡市迪麦森机械制造有限公司 | 【电子厂招聘_普工招工网_工厂招聘信息平台】-工立方打工网 | 桁架机器人_桁架机械手_上下料机械手_数控车床机械手-苏州清智科技装备制造有限公司 | 岛津二手液相色谱仪,岛津10A液相,安捷伦二手液相,安捷伦1100液相-杭州森尼欧科学仪器有限公司 | 复盛空压机配件-空气压缩机-复盛空压机(华北)总代理 | 京马网,京马建站,网站定制,营销型网站建设,东莞建站,东莞网站建设-首页-京马网 | 【化妆品备案】进口化妆品备案流程-深圳美尚美化妆品有限公司 | 纯水设备_苏州皙全超纯水设备水处理设备生产厂家 | 橡胶接头_橡胶软接头_套管伸缩器_管道伸缩器厂家-巩义市远大供水材料有限公司 | 杰恒蠕动泵-蠕动泵专业厂家-19年专注蠕动泵 | 团建-拓展-拓展培训-拓展训练-户外拓展训练基地[无锡劲途] | 外贮压-柜式-悬挂式-七氟丙烷-灭火器-灭火系统-药剂-价格-厂家-IG541-混合气体-贮压-非贮压-超细干粉-自动-灭火装置-气体灭火设备-探火管灭火厂家-东莞汇建消防科技有限公司 | 智能汉显全自动量热仪_微机全自动胶质层指数测定仪-鹤壁市科达仪器仪表有限公司 | 温泉机设备|温泉小镇规划设计|碳酸泉设备 - 大连连邦温泉科技 | 西门子代理商_西门子变频器总代理-翰粤百科 | 偏心半球阀-电动偏心半球阀-调流调压阀-旋球阀-上欧阀门有限公司 | 学习虾-免费的学习资料下载平台 雪花制冰机(实验室雪花制冰机)百科 | 耐酸泵,耐腐蚀真空泵,耐酸真空泵-淄博华舜耐腐蚀真空泵有限公司 精密模具-双色注塑模具加工-深圳铭洋宇通 | 蒜肠网-动漫,二次元,COSPLAY,漫展以及收藏型模型,手办,玩具的新媒体.(原变形金刚变迷TF圈) | 南京交通事故律师-专打交通事故的南京律师 | 大型果蔬切片机-水果冬瓜削皮机-洗菜机切菜机-肇庆市凤翔餐饮设备有限公司 | 定坤静电科技静电消除器厂家-除静电设备 | 工业设计,人工智能,体验式3D展示的智能技术交流服务平台-纳金网 J.S.Bach 圣巴赫_高端背景音乐系统_官网 | 非小号行情 - 专业的区块链、数字藏品行情APP、金色财经官网 | 不锈钢螺丝 - 六角螺丝厂家 - 不锈钢紧固件 - 万千紧固件--紧固件一站式采购 | 24位ADC|8位MCU-芯易德科技有限公司| 商用绞肉机-熟肉切片机-冻肉切丁机-猪肉开条机 - 广州市正盈机械设备有限公司 | 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 |