日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

类似百度输入框自动完成

發(fā)布時(shí)間:2025/7/14 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 类似百度输入框自动完成 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.前臺(tái)代碼

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InputAutoCompelete.aspx.cs" Inherits="HraWeb.InputAutoCompelete" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
??? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
??? <title></title>
</head>
<body>
??? <form id="form1" runat="server">
??????? <div>
??????? </div>
??? </form>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
??? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
??? <title>搜索詞自動(dòng)完成</title>
??? <style type="text/css">
??????? #search {
??????????? text-align: center;
??????????? position: relative;
??????? }

??????? .autocomplete {
??????????? border: 1px solid #9ACCFB;
??????????? background-color: white;
??????????? text-align: left;
??????? }

??????????? .autocomplete li {
??????????????? list-style-type: none;
??????????? }

??????? .clickable {
??????????? cursor: default;
??????? }

??????? .highlight {
??????????? background-color: #9ACCFB;
??????? }
??? </style>

??? <%--<script type="text/javascript" src="Scripts/jquery.js"></script>--%>
??? <script type="text/javascript">
??????? $(function () {
??????????? //取得div層
??????????? var $search = $('#search');
??????????? //取得輸入框JQuery對(duì)象
??????????? var $searchInput = $search.find('#search-text');
??????????? //關(guān)閉瀏覽器提供給輸入框的自動(dòng)完成
??????????? $searchInput.attr('autocomplete', 'off');
??????????? //創(chuàng)建自動(dòng)完成的下拉列表,用于顯示服務(wù)器返回的數(shù)據(jù),插入在搜索按鈕的后面,等顯示的時(shí)候再調(diào)整位置
??????????? var $autocomplete = $('<div></div>')
??????????? .hide()
??????????? .insertAfter('#submit');
??????????? //清空下拉列表的內(nèi)容并且隱藏下拉列表區(qū)
??????????? var clear = function () {
??????????????? $autocomplete.empty().hide();
??????????? };
??????????? //注冊(cè)事件,當(dāng)輸入框失去焦點(diǎn)的時(shí)候清空下拉列表并隱藏
??????????? $searchInput.blur(function () {
??????????????? setTimeout(clear, 500);
??????????? });
??????????? //下拉列表中高亮的項(xiàng)目的索引,當(dāng)顯示下拉列表項(xiàng)的時(shí)候,移動(dòng)鼠標(biāo)或者鍵盤(pán)的上下鍵就會(huì)移動(dòng)高亮的項(xiàng)目,想百度搜索那樣
??????????? var selectedItem = null;
??????????? //timeout的ID
??????????? var timeoutid = null;
??????????? //設(shè)置下拉項(xiàng)的高亮背景
??????????? var setSelectedItem = function (item) {
??????????????? //更新索引變量
??????????????? selectedItem = item;
??????????????? //按上下鍵是循環(huán)顯示的,小于0就置成最大的值,大于最大值就置成0
??????????????? if (selectedItem < 0) {
??????????????????? selectedItem = $autocomplete.find('li').length - 1;
??????????????? }
??????????????? else if (selectedItem > $autocomplete.find('li').length - 1) {
??????????????????? selectedItem = 0;
??????????????? }
??????????????? //首先移除其他列表項(xiàng)的高亮背景,然后再高亮當(dāng)前索引的背景
??????????????? $autocomplete.find('li').removeClass('highlight')
??????????????? .eq(selectedItem).addClass('highlight');
??????????? };
??????????? var ajax_request = function () {
??????????????? //ajax服務(wù)端通信
??????????????? $.ajax({
??????????????????? 'url': 'InputAutoCompelete.aspx', //服務(wù)器的地址
??????????????????? 'data': { 'search-text': $searchInput.val() }, //參數(shù)
??????????????????? 'dataType': 'json', //返回?cái)?shù)據(jù)類(lèi)型
??????????????????? 'type': 'POST', //請(qǐng)求類(lèi)型
??????????????????? 'success': function (data) {
??????????????????????? if (data.length) {
??????????????????????????? //遍歷data,添加到自動(dòng)完成區(qū)
??????????????????????????? $.each(data, function (index, term) {
??????????????????????????????? //創(chuàng)建li標(biāo)簽,添加到下拉列表中
??????????????????????????????? $('<li></li>').text(term).appendTo($autocomplete)
??????????????????????????????? .addClass('clickable')
??????????????????????????????? .hover(function () {
??????????????????????????????????? //下拉列表每一項(xiàng)的事件,鼠標(biāo)移進(jìn)去的操作
??????????????????????????????????? $(this).siblings().removeClass('highlight');
??????????????????????????????????? $(this).addClass('highlight');
??????????????????????????????????? selectedItem = index;
??????????????????????????????? }, function () {
??????????????????????????????????? //下拉列表每一項(xiàng)的事件,鼠標(biāo)離開(kāi)的操作
??????????????????????????????????? $(this).removeClass('highlight');
??????????????????????????????????? //當(dāng)鼠標(biāo)離開(kāi)時(shí)索引置-1,當(dāng)作標(biāo)記
??????????????????????????????????? selectedItem = -1;
??????????????????????????????? })
??????????????????????????????? .click(function () {
??????????????????????????????????? //鼠標(biāo)單擊下拉列表的這一項(xiàng)的話,就將這一項(xiàng)的值添加到輸入框中
??????????????????????????????????? $searchInput.val(term);
??????????????????????????????????? //清空并隱藏下拉列表
??????????????????????????????????? $autocomplete.empty().hide();
??????????????????????????????? });
??????????????????????????? });//事件注冊(cè)完畢
??????????????????????????? //設(shè)置下拉列表的位置,然后顯示下拉列表
??????????????????????????? var ypos = $searchInput.position().top;
??????????????????????????? var xpos = $searchInput.position().left;
??????????????????????????? $autocomplete.css('width', $searchInput.css('width'));
??????????????????????????? $autocomplete.css({ 'position': 'relative', 'left': xpos + "px", 'top': ypos + "px" });
??????????????????????????? setSelectedItem(0);
??????????????????????????? //顯示下拉列表
??????????????????????????? $autocomplete.show();
??????????????????????? }
??????????????????? }
??????????????? });
??????????? };
??????????? //對(duì)輸入框進(jìn)行事件注冊(cè)
??????????? $searchInput
??????????? .keyup(function (event) {
??????????????? //字母數(shù)字,退格,空格
??????????????? if (event.keyCode > 40 || event.keyCode == 8 || event.keyCode == 32) {
??????????????????? //首先刪除下拉列表中的信息
??????????????????? $autocomplete.empty().hide();
??????????????????? clearTimeout(timeoutid);
??????????????????? timeoutid = setTimeout(ajax_request, 100);
??????????????? }
??????????????? else if (event.keyCode == 38) {
??????????????????? //上
??????????????????? //selectedItem = -1 代表鼠標(biāo)離開(kāi)
??????????????????? if (selectedItem == -1) {
??????????????????????? setSelectedItem($autocomplete.find('li').length - 1);
??????????????????? }
??????????????????? else {
??????????????????????? //索引減1
??????????????????????? setSelectedItem(selectedItem - 1);
??????????????????? }
??????????????????? event.preventDefault();
??????????????? }
??????????????? else if (event.keyCode == 40) {
??????????????????? //下
??????????????????? //selectedItem = -1 代表鼠標(biāo)離開(kāi)
??????????????????? if (selectedItem == -1) {
??????????????????????? setSelectedItem(0);
??????????????????? }
??????????????????? else {
??????????????????????? //索引加1
??????????????????????? setSelectedItem(selectedItem + 1);
??????????????????? }
??????????????????? event.preventDefault();
??????????????? }
??????????? })
??????????? .keypress(function (event) {
??????????????? //enter鍵
??????????????? if (event.keyCode == 13) {
??????????????????? //列表為空或者鼠標(biāo)離開(kāi)導(dǎo)致當(dāng)前沒(méi)有索引值
??????????????????? if ($autocomplete.find('li').length == 0 || selectedItem == -1) {
??????????????????????? return;
??????????????????? }
??????????????????? $searchInput.val($autocomplete.find('li').eq(selectedItem).text());
??????????????????? $autocomplete.empty().hide();
??????????????????? event.preventDefault();
??????????????? }
??????????? })
??????????? .keydown(function (event) {
??????????????? //esc鍵
??????????????? if (event.keyCode == 27) {
??????????????????? $autocomplete.empty().hide();
??????????????????? event.preventDefault();
??????????????? }
??????????? });
??????????? //注冊(cè)窗口大小改變的事件,重新調(diào)整下拉列表的位置
??????????? $(window).resize(function () {
??????????????? var ypos = $searchInput.position().top;
??????????????? var xpos = $searchInput.position().left;
??????????????? $autocomplete.css('width', $searchInput.css('width'));
??????????????? $autocomplete.css({ 'position': 'relative', 'left': xpos + "px", 'top': ypos + "px" });
??????????? });
??????? });
??? </script>
</head>
<body>
??? <div id="search">
??????? <label for="search-text">請(qǐng)輸入關(guān)鍵詞</label><input type="text" id="search-text" name="search-text" />
??????? <input type="button" id="submit" value="搜索" />
??? </div>
</body>
</html>

2.后臺(tái)代碼

using HraWeb.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace HraWeb
{
??? public partial class InputAutoCompelete : BasePage
??? {
??????? protected void Page_Load(object sender, EventArgs e)
??????? {
??????????? if (!string.IsNullOrEmpty(Request["search-text"]))
??????????? {
??????????????? string[] words = {"amani","abc","apple","abstract","an","bike","byebye",
"beat","be","bing","come","cup","class","calendar","china"};

??????????????? string key = Request["search-text"];
??????????????? if (key.Length != 0)
??????????????? {
??????????????????? List<string> jsonList = new List<string>();
??????????????????? for (int i = 0; i < words.Length; i++)
??????????????????? {
??????????????????????? if (words[i].Contains(key))
??????????????????????? {
??????????????????????????? jsonList.Add(words[i]);
??????????????????????? }
??????????????????? }
??????????????????? var json=Newtonsoft.Json.JsonConvert.SerializeObject(jsonList);
??????????????????? HttpContext.Current.Response.Write(json);
??????????????????? HttpContext.Current.Response.End();
??????????????? }


??????????? }
??????? }
??? }
}

轉(zhuǎn)載于:https://www.cnblogs.com/kexb/p/5064983.html

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的类似百度输入框自动完成的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品久久av | 欧美丰满一区二区免费视频 | 天天做天天躁天天躁 | 日本在线视频www色 国产在线视频网址 | av我不卡 | 性欧美精品男男 | 精品伦精品一区二区三区视频 | 超碰97人人爱 | 日韩精品一二区 | 国产精品99久久久久久大便 | 一级片免费在线观看 | 日韩精品毛片 | 精品人妻伦一二三区免费 | 国产亚洲精品久久久久久久 | 成人自拍网 | 97网站 | 一区视频在线免费观看 | 久久久久久久久久免费 | 欧美激情久久久久 | 经典三级第一页 | 永久免费av网站 | 2023av在线| 中日韩午夜理伦电影免费 | av无码精品一区二区三区宅噜噜 | 德国老妇性猛交 | 亚洲日本一区二区 | 日韩久久在线 | 国产婷婷一区二区三区久久 | 四虎黄色影院 | 欧美蜜桃视频 | 国产在线h | 亚洲天堂网络 | 日韩视频在线一区二区 | 九九在线精品视频 | 亚洲精品字幕在线 | 久久超碰在线 | 又黄又色| 免费一级全黄少妇性色生活片 | 永久av在线 | 欧美一区二区三区在线观看 | 苍井空亚洲精品aa片在线播放 | 欧美精品 日韩 | 性猛交娇小69hd | 黄色岛国片 | 自拍三区| 免费在线观看不卡av | 91.xxx.高清在线 | 日韩精品视频免费在线观看 | 久久黄色影院 | av无码精品一区二区三区宅噜噜 | 日韩五十路 | 伊人二区 | av网站在线免费看 | 日韩av在线播放一区 | 男女羞羞的视频 | 精品成人av一区二区在线播放 | 亚洲三级国产 | 欧美成人aaaaa | 91在线视频在线观看 | 国产女人18毛片水真多18精品 | 欧美乱妇视频 | 四虎4hu | 国产男女精品 | 国产美女视频免费观看下载软件 | 免费看黄色网 | 欧美视频你懂的 | 国产综合久久久久久鬼色 | 久久久成人精品 | 亚洲五级片| 在线视频亚洲 | 人体毛片 | 国产精品久久久久久一区 | 国产精品一区二区毛片 | 美女亚洲一区 | 丰满大乳少妇在线观看网站 | 色婷婷综合久久 | 久久日av| 99精品无码一区二区 | 国产欧美一区二区三区在线看蜜臂 | 日本一级理论片在线大全 | 在线观看特色大片免费网站 | 丰满熟妇人妻av无码区 | 国产视频一区二 | 免费欧美大片 | 经典三级在线视频 | 日韩 欧美 亚洲 国产 | 国产精品久久久久毛片软件 | 哪个网站可以看毛片 | 国产91网址 | 欧美性猛片aaaaaaa做受 | 小蝌蚪av | 椎名由奈在线观看 | 欧美日韩黄色片 | 成人免费午夜视频 | 成人在线观看网站 | 51av视频 | 天天做天天干 | 国产盗摄在线观看 | 欧美一区二区在线视频观看 |