jQuery+Ajax實(shí)現(xiàn)類似百度的搜索自動(dòng)提示功能
來(lái)源:易賢網(wǎng) 閱讀:7155 次 日期:2015-04-17 13:43:03
溫馨提示:易賢網(wǎng)小編為您整理了“jQuery+Ajax實(shí)現(xiàn)類似百度的搜索自動(dòng)提示功能”,方便廣大網(wǎng)友查閱!

jQuery+Ajax實(shí)現(xiàn)類似百度的搜索自動(dòng)提示功能,具體看下面的代碼:

頁(yè)面:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">

<html xmlns="">

<head runat="server">

<title>seach</title>

<script type="text/javascript" src="jquery.min.js" ></script>

<script type="text/javascript" src="js.js"></script>

<link href="css.css" rel="stylesheet" type="text/css" />

</head>

<body>

<form id="form1" runat="server">

<div onClick="keyup_close();">

<ul>

<li class="h_14">

<iframe style="DISPLAY: none" id="if_keyup" name="if_keyup"></iframe>

<input id="kw" name="kw" class="h_15" onKeyUp="keyup(event)" autocomplete="off" />

<div style="DISPLAY: none" id="keyup_d" class="sokeyup" ></div>

</li>

<li class="h_16">

<input style="CURSOR: pointer" onClick="so_search();" src="searchbuttom.gif" type="image" />

</li>

</ul>

</div>

</form>

</body>

</html>

css

UL {

padding: 0px; LIST-STYLE-TYPE: none;

MARGIN: 0px;

LIST-STYLE-IMAGE: none;

height: 52px;

}

LI {

PADDING-BOTTOM: 0px;

LIST-STYLE-TYPE: none;

MARGIN: 0px;

PADDING-LEFT: 0px;

PADDING-RIGHT: 0px;

LIST-STYLE-IMAGE: none;

PADDING-TOP: 0px

}

.h_14 {

BACKGROUND-IMAGE: url(text_search.jpg);

TEXT-ALIGN: left;

PADDING-BOTTOM: 1px;

LINE-HEIGHT: 26px;

MARGIN-TOP: 3px;

PADDING-LEFT: 4px;

WIDTH: 245px;

BACKGROUND-REPEAT: no-repeat;

BACKGROUND-POSITION: center 50%;

FLOAT: left;

HEIGHT: 26px;

MARGIN-LEFT: 3px;

VERTICAL-ALIGN: middle;

OVERFLOW: hidden;

MARGIN-RIGHT: 3px;

PADDING-TOP: 2px

}

.h_15 {

BORDER-BOTTOM: 0px;

BORDER-LEFT: 0px;

PADDING-BOTTOM: 0px;

LINE-HEIGHT: 20px;

PADDING-LEFT: 0px;

WIDTH: 240px;

PADDING-RIGHT: 0px;

DISPLAY: block;

FLOAT: left;

HEIGHT: 20px;

MARGIN-LEFT: 0px;

FONT-SIZE: 14px;

VERTICAL-ALIGN: middle;

BORDER-TOP: 0px;

BORDER-RIGHT: 0px;

PADDING-TOP: 4px

}

.h_16 {

WIDTH: 57px;

FLOAT: left;

HEIGHT: 32px;

OVERFLOW: hidden;

CURSOR: pointer

}

.sokeyup {

Z-INDEX: 10000;

BORDER-BOTTOM: #000000 1px solid;

POSITION: absolute;

BORDER-LEFT: #000000 1px solid;

WIDTH: 245px;

DISPLAY: none;

CLEAR: both;

OVERFLOW: hidden;

BORDER-TOP: #000000 1px solid;

BORDER-RIGHT: #000000 1px solid

}

.sokeyup_1 {

LINE-HEIGHT: 20px;

PADDING-LEFT: 4px;

WIDTH: 237px;

PADDING-RIGHT: 4px;

HEIGHT: 20px;

CLEAR: both;

OVERFLOW: hidden

}

.sokeyup_2 {

LINE-HEIGHT: 20px;

WIDTH: 140px;

FLOAT: left;

HEIGHT: 20px;

COLOR: #4c4c4c

}

.sokeyup_3 {

TEXT-ALIGN: right;

LINE-HEIGHT: 20px;

WIDTH: 97px;

FLOAT: right;

HEIGHT: 20px;

COLOR: #008000

}

.sokeyup_4 {

LINE-HEIGHT: 20px;

WIDTH: 237px;

HEIGHT: 20px

}

.sokeyup_5 {

LINE-HEIGHT: 20px;

FLOAT: right;

HEIGHT: 20px;

COLOR: #0000cc;

CURSOR: pointer;

TEXT-DECORATION: underline

}

JS:

function so_search(){

var kw = $("#kw").val();

var kid = 0;

var kname=$("#select_kid").html();

kw = encodeURI(kw);

if(kw == ''){

alert("請(qǐng)輸入要查找的關(guān)鍵詞");

}else{

location.href="search-"+kw+".html";

}

}

//關(guān)閉搜索提示

function keyup_close(){

$("#keyup_d").hide();

}

//

function keyup_over(id){

$("#u_"+id).css("background-color","#0000CC");

$("#l_"+id).css("color","#fff");

}

function keyup_out(id){

$("#u_"+id).css("background-color","#fff");

$("#l_"+id).css("color","#000");

}

function keyup_click(id){

$("#keyup_d").hide();

var kw=$("#l_"+id).html();

kw = encodeURI(kw);

location.href="search-"+kw+".html";

}

function keyup(event){

if(window.event){

var key =window.event.keyCode;

}else{

var key =event.which;

}

if(key!=38&&key!=40&&key!=13){

var kw=$("#kw").val();

//跨域獲取搜索提示

var url ="JsonHandler.ashx?kw=" + encodeURI(kw) + "&time=" + new Date().toString();//中文

$.get(url,function(data){

if (data!='') {

$("#keyup_d").html(data+'<ul class="sokeyup_4"><li id="l_0" style="display:none;">

</li><li class="sokeyup_5" onclick="keyup_close()">關(guān)閉</li></ul>');

$("#keyup_d").show();

} else {

$("#keyup_d").hide();

}

}

);

}

}

var ul_id=0;

$(window).keydown(function(event){

if(window.event){

var key =window.event.keyCode;

}else{

var key =event.which;

}

if (key==13) {

if (searchFocus == true) {

}

}

var ulcount=$("#keyup_d ul").size()-1;

if($("#keyup_d").css("display")=="block"){

//向上

$("#l_0").html($("#kw").val());

if(key==13) {

if ($("#kw").val()!= "") {

so_search();

}

}

if (key==38) {

ul_id--;

if(ul_id<0){

ul_id = ulcount;

keyup_over(ul_id);

}else{

keyup_out(ul_id+1);

keyup_over(ul_id);

}

$("#kw").val($("#l_"+ul_id).html());

return false;

}

//向下

if (key==40 ) {

$("#l_0").html($("#kw").val());

ul_id++;

if(ul_id>ulcount){

ul_id=0;

keyup_out(ulcount);

}else{

keyup_out(ul_id-1);

keyup_over(ul_id);

}

$("#kw").val($("#l_"+ul_id).html());

return false;

}

}

});

ashx:

<%@ WebHandler Language="C#" Class="JsonHandler" %>

using System;

using System.Web;

using System.Data.SqlClient;

using System.Data;

public class JsonHandler : IHttpHandler {

public void ProcessRequest(HttpContext context)

{

context.Response.ContentType = "text/plain";

string Key = context.Request["kw"];

if (Key !=null&&Key!="")

{

SqlConnection con = new SqlConnection("server=JUQI;database=NorthWind;uid=sa;pwd=sa;");

con.Open();

string str = "select distinct keyword,num from search where keyword like @kw order by keyword";

SqlCommand com = new SqlCommand(str, con);

com.Parameters.Add("@kw", SqlDbType.NVarChar).Value = "%"+ Key + "%";

SqlDataReader sdr = com.ExecuteReader();

string htmlstr = "";

int i = 1;

while (sdr.Read())

{

string kword = sdr["keyword"].ToString();

string a = sdr["num"].ToString();

htmlstr += "<ul class='sokeyup_1' onmouseover='keyup_over(" + i + ")'

onmouseout='keyup_out(" + i + ")' onclick='keyup_click(" + i + ")' id='u_" + i + "'>";

htmlstr += "<li class='sokeyup_2' id='l_" + i + "'>" + kword + "</li>";

htmlstr += "<li class='sokeyup_3'>" + a + " 結(jié)果</li></ul>";

i++;

}

context.Response.Write(htmlstr);

context.Response.End();

sdr.Close();

con.Close();

}

}

public bool IsReusable {

get {

return false;

}

}

}

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看腳本欄目
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)