日韩性视频-久久久蜜桃-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ò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美亚洲欧美 | 精品国产一区二区三区四区 | 天天想你在线观看完整版电影高清 | 亚洲国产日韩一区二区 | 亚洲欧美日韩在线看 | 国产911视频 | 美女扒开大腿让男人桶 | 婷婷丁香激情 | 在线观看国产一区 | 免费网站在线观看人数在哪动漫 | 他揉捏她两乳不停呻吟动态图 | 丁香五香天堂 | 久久久穴 | 色屁屁一区二区 | 天天摸天天做天天爽水多 | 国产女人在线 | 在线观看的av | 国内视频一区 | 美女扒开腿男人爽桶 | 欧美成人免费在线观看 | 免费超碰在线观看 | 中日韩午夜理伦电影免费 | 毛片在哪看 | 日韩中文字幕亚洲 | 欧美另类色 | 99国产精品白浆在线观看免费 | 男生操女生网站 | 日韩黄片一区二区三区 | av天堂永久资源网 | 污到下面流水的视频 | www黄在线观看 | 国内视频一区二区 | 日韩av免费一区 | 亚洲伦理自拍 | 久久久久久久国产 | 无码国产精品一区二区免费16 | 亚洲成人资源 | 2020亚洲天堂 | 国产91美女视频 | 国产又粗又猛又爽又黄91 | 欧美一二级| 国产一区激情 | 国产精品久久777777毛茸茸 | 日韩在线视频看看 | 色一情一乱一伦 | 成人教育av在线 | 成人免费观看视频大全 | 在线免费观看亚洲 | 国产欧美日韩 | 狠狠干精品 | 污视频免费在线观看网站 | 进去里在线观看 | 一区二区在线视频免费观看 | 性感美女一级片 | 极品美女无套呻吟啪啪 | 久久久久在线观看 | 四季av一区二区夜夜嗨 | 中文字幕三级电影 | 中文字幕一区av | 69人妻精品久久无人专区 | 日本精品一区二区三区视频 | 91亚色视频 | 视频一区二区国产 | 国产h片在线观看 | 亚洲黄色片视频 | av影视在线| 欧美一级看片 | 国产精品久久久久久久久久久久久久久久久久 | 欧美精品一区二区成人 | 最新日本中文字幕 | 日本视频在线看 | 韩国美女毛片 | 久久久午夜电影 | 男人靠女人免费视频网站 | 香蕉久久a毛片 | 日日摸日日添日日碰9学生露脸 | 国产在线小视频 | 国产成年人免费视频 | 欧美激情五月 | 亚洲怡春院 | 黄色第一网站 | 天天干天天操天天舔 | 成人在线免费视频播放 | 骚虎免费视频 | 中文字幕人乱码中文字 | 日韩精品2 | 播放男人添女人下边视频 | 欧美精品video | 久久久人妻无码一区二区 | 国产,日韩,欧美 | 一二三四视频社区在线 | 激情久久免费视频 | 亚洲人体视频 | 久视频在线 | 国产天堂网 | 久久久久久久久福利 | 公交顶臀绿裙妇女配视频 | 99国产精品国产精品九九 | 8x8x永久免费视频 |