全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

JS+Ajax实现百度智能搜索框

首先浏览实现后的结果,输入一个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小时内与您取得联系。