欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS+Ajax實(shí)現(xiàn)百度智能搜索框

 更新時(shí)間:2017年08月04日 14:41:48   作者:不染心  
現(xiàn)在遇到這樣的需求,要求輸入一個(gè)a之后會(huì)出現(xiàn)包含a的下拉列表,當(dāng)我們點(diǎn)擊某一個(gè)的時(shí)候,搜索框中就會(huì)出現(xiàn)點(diǎn)擊的值。下面小編給大家分享同js和ajax實(shí)現(xiàn)百度智能搜索框,需要的的朋友參考下實(shí)現(xiàn)代碼

首先瀏覽實(shí)現(xiàn)后的結(jié)果,輸入一個(gè)a之后會(huì)出現(xiàn)包含a的下拉列表,當(dāng)我們點(diǎn)擊某一個(gè)的時(shí)候,搜索框中就會(huì)出現(xiàn)點(diǎn)擊的值。實(shí)現(xiàn)所需要的主要是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;//如果不設(shè)置,傳到后臺(tái)的是空值,所有的值都會(huì)被輸出 
  } 
  xmlHttp=creatXMLHttp(); 
  //alert(xmlHttp); 
  //要給服務(wù)器發(fā)送數(shù)據(jù) 
  var url="searchServlet?keyword="+escape(content.value); 
  xmlHttp.open("GET",url,true); 
  xmlHttp.onreadystatechange=callback; 
  xmlHttp.send(null); 
} 
  //獲取XMLHttp對(duì)象 
 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對(duì)象 
  function callback() { 
  if(xmlHttp.readyState==4 && xmlHttp.status==200){ 
     var result=xmlHttp.responseText; 
     //解析數(shù)據(jù) 
     var json=eval("("+result+")"); 
     //動(dòng)態(tài)顯示數(shù)據(jù),線束數(shù)據(jù)在輸入框?qū)Φ南旅?
     setContent(json); 
  } 
} 
//設(shè)置關(guān)聯(lián)數(shù)據(jù)的展示 
function setContent(contents) { 
  ClearContent(); 
  var size=contents.length; 
  for(var i=0;i<size;i++) 
    { 
     var nextNode=contents[i];//json格式的第i個(gè)數(shù)據(jù) 
     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); 
    } 
} 
//清空數(shù)據(jù) 
function ClearContent() { 
  document.getElementById("c").innerHTML=""; 
} 
//當(dāng)控件失去焦點(diǎn)時(shí),清空數(shù)據(jù) 
function outFouce() { 
  ClearContent(); 
} 
//獲得焦點(diǎn)時(shí), 
</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> 

后臺(tái)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 {//假數(shù)據(jù),模擬數(shù)據(jù)庫(kù)讀取 
    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,以流的形式寫到前臺(tái) 
    response.getWriter().write(JSONArray.fromObject(listdata).toString()); 
  } 
  //獲取假數(shù)據(jù)中符合條件的值 
  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> 

目錄結(jié)構(gòu)

總結(jié)

以上所述是小編給大家介紹的JS+Ajax實(shí)現(xiàn)百度智能搜索框,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • window.open()實(shí)現(xiàn)post傳遞參數(shù)

    window.open()實(shí)現(xiàn)post傳遞參數(shù)

    本文主要向大家介紹了如何使用window.open()實(shí)現(xiàn)post傳遞參數(shù)的方法,思路是參考的一位網(wǎng)友的,然后根據(jù)自己的項(xiàng)目需求做了些調(diào)整,這里同樣分享給大家,希望對(duì)大家能夠有所幫助。
    2015-03-03
  • js模仿windows桌面圖標(biāo)排列算法具體實(shí)現(xiàn)(附圖)

    js模仿windows桌面圖標(biāo)排列算法具體實(shí)現(xiàn)(附圖)

    需要引入Jquery,如果需要全部功能,請(qǐng)引入jquery-ui和jquery-ui.css,具體實(shí)現(xiàn)步驟如下,感興趣的朋友可以參考下哈
    2013-06-06
  • JS模擬的Map類實(shí)現(xiàn)方法

    JS模擬的Map類實(shí)現(xiàn)方法

    這篇文章主要介紹了JS模擬的Map類實(shí)現(xiàn)方法,可實(shí)現(xiàn)模擬java中map屬性按照鍵值對(duì)保存的功能,提供了采用數(shù)組和json兩種實(shí)現(xiàn)方式,需要的朋友可以參考下
    2016-06-06
  • JS原生帶縮略圖的圖片切換效果

    JS原生帶縮略圖的圖片切換效果

    這篇文章主要介紹了JS原生帶縮略圖的圖片切換效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2018-10-10
  • 關(guān)于Webpack dev server熱加載失敗的解決方法

    關(guān)于Webpack dev server熱加載失敗的解決方法

    下面小編就為大家分享一篇關(guān)于Webpack dev server熱加載失敗的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • 關(guān)于IE只能嵌套27層表格的說(shuō)法證明

    關(guān)于IE只能嵌套27層表格的說(shuō)法證明

    關(guān)于IE只能嵌套27層表格的說(shuō)法證明...
    2006-11-11
  • 微信小程序url傳參寫變量的方法

    微信小程序url傳參寫變量的方法

    這篇文章主要介紹了微信小程序url傳參寫變量的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-08-08
  • es6中??與||區(qū)別小結(jié)

    es6中??與||區(qū)別小結(jié)

    本文主要介紹了es6中??與||區(qū)別小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • JS之相等操作符詳解

    JS之相等操作符詳解

    下面小編就為大家?guī)?lái)一篇JS之相等操作符詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • 性能分析:指如何快速定位SQL問(wèn)題

    性能分析:指如何快速定位SQL問(wèn)題

    本文介紹了如何快速定位SQL性能問(wèn)題的方法,包括找出執(zhí)行時(shí)間最長(zhǎng)的SQL、同類型并發(fā)SQL、阻塞和被阻塞SQL、鎖等待和死鎖,以及慢日志分析,需要的的朋友一起看看吧
    2017-04-04

最新評(píng)論