首先浏览实现后的结果,输入一个a之后会出现包含a的下拉列表,当我们点击某一个的时候,搜索框中就会出现点击的值。实现所需要的主要是ajax+js。
前端search.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<title>Insert title here</title>
<script src="js/jquery.min.js"></script>
<style type="text/css">
*{
margin: 0 auto;
padding: 0;
}
li{
margin:0;
height: 20px;
width: 200px;
list-style: none;
}
/* #c li:HOVER{
background-color: #F9F9F9;
} */
.onmouse{
background-color: #F9F9F9;
}
.outmouse{
background-color:white;
}
#contain{
width: 50%;
}
</style>
<!-- jquery -->
<script type="text/javascript">
var xmlHttp;
function getMoreContents() {
var content=document.getElementById("keyword");
if(content.value==""){
ClearContent();
return;//如果不设置,传到后台的是空值,所有的值都会被输出
}
xmlHttp=creatXMLHttp();
//alert(xmlHttp);
//要给服务器发送数据
var url="searchServlet?keyword="+escape(content.value);
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=callback;
xmlHttp.send(null);
}
//获取XMLHttp对象
function creatXMLHttp() {
var xmlHttp;
if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}
if(window.ActiveXObject)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
if(!xmlHttp){
xmlHttp=new ActiveXOject("Msxml2.XMLHTTP");
}
}
return xmlHttp;
} //获取XMLHttp对象
function callback() {
if(xmlHttp.readyState==4 && xmlHttp.status==200){
var result=xmlHttp.responseText;
//解析数据
var json=eval("("+result+")");
//动态显示数据,线束数据在输入框对的下面
setContent(json);
}
}
//设置关联数据的展示
function setContent(contents) {
ClearContent();
var size=contents.length;
for(var i=0;i<size;i++)
{
var nextNode=contents[i];//json格式的第i个数据
var li =document.createElement("li");
li.onmouseover=function(){
this.className="onmouse";
document.getElementById("keyword").value=this.innerHTML;
}
li.onmouseout=function(){
this.className="outmouse";
}
var text=document.createTextNode(nextNode);
li.appendChild(text);
document.getElementById("c").appendChild(li);
}
}
//清空数据
function ClearContent() {
document.getElementById("c").innerHTML="";
}
//当控件失去焦点时,清空数据
function outFouce() {
ClearContent();
}
//获得焦点时,
</script>
</head>
<body>
<div id="contain">
<div style="height: 20px;">
<input type="text" id="keyword" style="size:50px;" onkeyup="getMoreContents()" onblur="outFouce()" onfocus="getMoreContents()">
<input type="button" id="bu" value="百度一下" style="">
</div>
<div id="popDiv">
<ul id="c">
<li></li>
</ul>
</div>
</div>
</body>
</html>
后台searchServlet.Java
package search;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import net.sf.json.JSONArray;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class searchServlet
*/
@WebServlet("/searchServlet")
public class searchServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
static List<String> datas=new ArrayList<String>();
static {//假数据,模拟数据库读取
datas.add("ajax");
datas.add("bjax");
datas.add("ajaxfd");
datas.add("bfvd");
datas.add("dafdx");
datas.add("fdax");
datas.add("ahg");
datas.add("ddx");
}
/**
* @see HttpServlet#HttpServlet()
*/
public searchServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String keyword=request.getParameter("keyword");
//System.out.println(keyword);
List<String> listdata= getData(keyword);
// 返回json,以流的形式写到前台
response.getWriter().write(JSONArray.fromObject(listdata).toString());
}
//获取假数据中符合条件的值
public List<String> getData(String keyword)
{
List<String> list=new ArrayList<String>();
for(String data:datas)
{
if(data.contains(keyword)){
list.add(data);
}
}
return list;
}
}
xml配置
<span style="font-size:18px;"><strong><?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <servlet> <servlet-name>searchServlet</servlet-name> <servlet-class>search.searchServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>searchServlet</servlet-name> <url-pattern>/search/searchServlet</url-pattern> </servlet-mapping> <display-name>DropMeum</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app></strong></span>
目录结构
总结
以上所述是小编给大家介绍的JS+Ajax实现百度智能搜索框,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# js
# ajax
# 实现智能搜索框
# js实现搜索框关键字智能匹配代码
# 基于Vue.js实现简单搜索框
# JavaScript实现搜索框的自动完成功能(一)
# JS实现仿google、百度搜索框输入信息智能提示的实现方法
# JavaScript实现百度搜索框效果
# 自动完成的搜索框javascript实现
# JS实现京东首页之页面顶部、Logo和搜索框功能
# JS实现微信弹出搜索框 多条件查询功能
# javascript搜索框效果实现方法
# JavaScript仿京东搜索框实例
# 小编
# 清空
# 的是
# 就会
# 在此
# 给大家
# 写到
# 当我们
# 要给
# 后会
# 所需要
# 所述
# 符合条件
# 给我留言
# 框中
# 感谢大家
# 输入框
# 主要是
# 疑问请
# 有任何
相关文章:
如何批量查询域名的建站时间记录?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
建站主机选购指南:核心配置优化与品牌推荐方案
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
子杰智能建站系统|零代码开发与AI生成SEO优化指南
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
建站之星安全性能如何?防护体系能否抵御黑客入侵?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
已有域名如何快速搭建专属网站?
临沂网站制作公司有哪些,临沂第四中学官网?
h5网站制作工具有哪些,h5页面制作工具有哪些?
简历在线制作网站免费版,如何创建个人简历?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
网站企业制作流程,用什么语言做企业网站比较好?
网站制作企业,网站的banner和导航栏是指什么?
如何正确下载安装西数主机建站助手?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
平台云上自主建站:模板化设计与智能工具打造高效网站
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?
北京的网站制作公司有哪些,哪个视频网站最好?
如何在万网ECS上快速搭建专属网站?
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
如何在Tomcat中配置并部署网站项目?
购物网站制作公司有哪些,哪个购物网站比较好?
如何在IIS管理器中快速创建并配置网站?
如何在阿里云虚拟主机上快速搭建个人网站?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
建站之星CMS五站合一模板配置与SEO优化指南
沈阳制作网站公司排名,沈阳装饰协会官方网站?
已有域名能否直接搭建网站?
建站之星伪静态规则如何正确配置?
济南网站制作的价格,历城一职专官方网站?
如何通过WDCP绑定主域名及创建子域名站点?
建站主机服务器选购指南:轻量应用与VPS配置解析
长沙企业网站制作哪家好,长沙水业集团官方网站?
在线制作视频的网站有哪些,电脑如何制作视频短片?
PHP 500报错的快速解决方法
如何在云虚拟主机上快速搭建个人网站?
如何用y主机助手快速搭建网站?
网站制作话术技巧,网站推广做的好怎么话术?
建站上传速度慢?如何优化加速网站加载效率?
建站之星如何配置系统实现高效建站?
*请认真填写需求信息,我们会在24小时内与您取得联系。