智能搜索框html代码,js实现搜索框关键字智能匹配代码

article/2025/8/27 12:40:31

只要使用搜索引擎的朋友应该都有这样的体会,就是当在搜索框输入关键字的时候,会出现自能匹配现象,这绝对是非常好的用户体验,下面就是一段类似的代码,当然这里只是掩饰,所以只能匹配的数据都是本地固定好的,在实际应用中可以才能够数据库读取数据。

效果图:

30d824611ca780b7eb3d219a7ec0eae5.png

代码实例如下:

搜索框关键字智能匹配实例代码

body, ul, li

{

margin:0;

padding:0;

}

body

{

font-size:12px;

font-family:sumsun, arial;

background:#FFFFFF;

}

.gover_search

{

position:relative;

z-index:99;

height:63px;

padding:15px 0 0 20px;

border:1px solid #b8cfe6;

border-bottom:0;

background:url(../images/gover_search_bg.gif) repeat-x 0 0;

}

.gover_search_form {height:36px;}

.gover_search .search_t

{

float:left;

width:112px;

line-height:26px;

color:#666;

}

.gover_search .input_search_key

{

float:left;

width:462px;

height:18px;

padding:3px;

margin-right:5px;

border:1px solid #ccc;

line-height:18px;

background:#fff;

}

.gover_search .search_btn

{

float:left;

width:68px;

height:26px;

overflow:hidden;

border:1px solid #ccc;

text-align:center;

color:#ff3300;

letter-spacing:5px;

background:url(../images/gover_search_bg.gif) no-repeat 0 -79px;

cursor:pointer;

font-weight:bold;

}

.gover_search .search_suggest

{

position:absolute;

z-index:999;

left:132px;

top:41px;

width:468px;

border:1px solid #ccc;

border-top:none;

display:none;

color:#004080;

}

.gover_search .search_suggest li

{

height:24px;

overflow:hidden;

padding-left:3px;

line-height:24px;

background:#fff;

cursor:default;

}

.gover_search .search_suggest li.hover {background:#ddd;}

.num_right

{

float:right;

text-align:right;

line-height:24px;

padding-right:10px

}

function oSearchSuggest(searchFuc)

{

var input = $('#gover_search_key');

var suggestWrap = $('#gov_search_suggest');

var key = "";

var init = function(){

input.bind('keyup',sendKeyWord);

input.bind('blur',function(){setTimeout(hideSuggest,100);})

}

var hideSuggest = function(){

suggestWrap.hide();

}

//发送请求,根据关键字到后台查询

var sendKeyWord = function(event){

//键盘选择下拉项

if(suggestWrap.css('display')=='block'&&event.keyCode == 38||event.keyCode == 40)

{

var current = suggestWrap.find('li.hover');

if(event.keyCode == 38)

{

if(current.length>0)

{

var prevLi = current.removeClass('hover').prev();

if(prevLi.length>0)

{

prevLi.addClass('hover');

input.val(prevLi.html());

}

}

else

{

var last = suggestWrap.find('li:last');

last.addClass('hover');

input.val(last.html());

}

}

else if(event.keyCode == 40)

{

if(current.length>0)

{

var nextLi = current.removeClass('hover').next();

if(nextLi.length>0)

{

nextLi.addClass('hover');

input.val(nextLi.html());

}

}

else

{

var first = suggestWrap.find('li:first');

first.addClass('hover');

input.val(first.html());

}

}

//输入字符

}

else

{

var valText = $.trim(input.val());

if(valText ==''||valText==key)

{

return;

}

searchFuc(valText);

key = valText;

}

}

//请求返回后,执行数据展示

this.dataDisplay = function(data){

if(data.length<=0)

{

suggestWrap.hide();

return;

}

//往搜索框下拉建议显示栏中添加条目并显示

var li;

var tmpFrag = document.createDocumentFragment();

suggestWrap.find('ul').html('');

for(var i=0; i

{

li = document.createElement('LI');

li.innerHTML = data[i];

tmpFrag.appendChild(li);

}

suggestWrap.find('ul').append(tmpFrag);

suggestWrap.show();

//为下拉选项绑定鼠标事件

suggestWrap.find('li').hover(function(){

suggestWrap.find('li').removeClass('hover');

$(this).addClass('hover');

},function(){

$(this).removeClass('hover');

}).bind('click',function(){

$(this).find("span").remove();

input.val(this.innerHTML);

suggestWrap.hide();

});

}

init();

};

//实例化输入提示的JS,参数为进行查询操作时要调用的函数名

var searchSuggest = new oSearchSuggest(sendKeyWordToBack);

//这是一个模似函数,实现向后台发送ajax查询请求,并返回一个查询结果数据,传递给前台的JS,再由前台JS来展示数据。本函数由程序员进行修改实现查询的请求

//参数为一个字符串,是搜索输入框中当前的内容

function sendKeyWordToBack(keyword){

var aData = [];

aData.push('约100个'+keyword+'返回数据1');

aData.push('约200个'+keyword+'返回数据2');

aData.push('约100个'+keyword+'返回数据3');

aData.push('约50000个'+keyword+'返回数据4');

aData.push('约1044个'+keyword+'2012是真的');

aData.push('约100个'+keyword+'2012是假的');

aData.push('约100个'+keyword+'2012是真的');

aData.push('约100个'+keyword+'2012是假的');

//将返回的数据传递给实现搜索输入框的输入提示js类

searchSuggest.dataDisplay(aData);

}

更多关于搜索功能的文章请查看专题《JavaScript搜索功能汇总》

希望本文所述对大家学习javascript程序设计有所帮助。


http://chatgpt.dhexx.cn/article/S9UPGbk3.shtml

相关文章

html5搜索框在最右侧,html5搜索框特效点击搜索框弹出分类搜索框代码

特效描述:html5搜索框特效 点击搜索框弹出 分类搜索框。点击搜索框弹出分类搜索框代码 代码结构 1. 引入CSS 2. 引入JS 3. HTML代码 Search People Sara Soueidan Rachel Smith Peter Finlan Patrick Cox

网页添加百度搜索框代码大全

★ 用法&#xff1a;在下面选择合适的样式&#xff0c;复制代码到网页中相应位置粘贴即可。 ★ 样式一&#xff08;20030&#xff09; 代码&#xff1a; <iframe id"baiduframe" marginwidth"0" marginheight"0" scrolling"no" fr…

【项目】实现网页搜索框功能

一、实现搜索框的部分代码 【注&#xff1a;涉及api接口和中后台数据交互】 1. 最终呈现形式&#xff1a; 2. 代码实现&#xff1a; HTML文件中&#xff1a; <!-- 搜索框部分 --><div class"search-bar" fxFlexAlign"center" style" ma…

FLOWABLE流程引擎分析

flowable流程引擎分析 历史: flowable工作流引擎是从jboss的jbpm->alfresco的activiti->flowable 逐步演化过来的, 核心开发人员是同一个团队. 都是因为与原公司的设计理念存在分歧,导致两次出走. flowable自16年fork之后,已经成为一个活跃的社区,逐步赢得的许多工作流引…

流程引擎课堂(一)| 关于开源流程引擎Activiti 的需要注意的几点

编者按&#xff1a;流程引擎在各个行业都有应用&#xff0c;其重要性不言而喻&#xff0c;充分了解流程引擎是一项重要课题。本文详细介绍了开源流程引擎Activiti 的优点与局限性&#xff0c;为流程引擎的选型提出了参考性建议。 基础概念 首先&#xff0c;我们来了解几个概念…

自主研发的流程引擎怎么样?好用吗?

编者按&#xff1a;随着数字化管理的发展&#xff0c;企业对于业务流程系统的要求越来越精细化&#xff0c;有些企业选择自主研发的流程引擎&#xff0c;自主研发的流程引擎怎么样&#xff1f;本文介绍了一款国产自主研发的流程引擎。 为什么要自主研发 企业的流程系统很重要&…

流程引擎设计思路

前言 在现代化的企业管理模式中&#xff0c;会通过日积月累的经验形成一套流程化的作业&#xff0c;来满足企业日常的经营活动&#xff0c;这不仅能够规范工作要求&#xff0c;还能提高人员工作效率。经常也会说道&#xff0c;流程化的工作模式是一个公司成熟的标记&#xff0c…

流程引擎activiti

1、Activiti简介 2、入门程序 3、使用详解 4、springboot2.0整合工作流activiti6.0以及与业务集成时的一些坑 5、删除异常的流程 6、系列文章 7、提交、审批、撤销 8、Activiti会签 系列文档 画图时将一个跳转条件${hr2}写成了${hr2}现在不能办理了&#xff01; 如何删…

如何设计一个流程引擎

编者按&#xff1a;流程引擎是低代码平台的核心&#xff0c;它可以帮助我们去实现非常灵活的流程设计&#xff0c;极大的助力实现数据流转的的规范化。流程引擎是什么&#xff1f;国内外流程引擎有什么区别&#xff1f;如何设计一个流程引擎&#xff1f; 流程引擎 什么是流程引…

规则/流程引擎-ice简介

ice简介 视频地址&#xff1a; https://www.bilibili.com/video/BV1hg411A7jx/ ice简介视频 致力于解决灵活繁复的硬编码问题 官方文档&#xff1a;http://waitmoon.com/zh 背景介绍 规则/流程引擎想必大家并不陌生&#xff0c;耳熟能详的就有Drools&#xff0c;Esper&#x…

流程引擎基础知识

流程引擎基础知识 流程部署流程取消部署流程发起流程取回流程作废流程委托流程流转常用流程表介绍备注 流程部署 1.后台直接导入bpmn /**流程部署源代码*/public void deploy() {ProcessEngine processEngine ProcessEngines.getDefaultProcessEngine();RepositoryService re…

规则引擎和流程引擎我该怎么理解

流程引擎 什么是流程引擎 流程引擎就是“业务过程的部分或整体在计算机应用环境下的自动化”&#xff0c;它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行&#xff0c;从而实现某个预期的业务目标&#xff0c;或者促使此目标的实…

流程引擎:流程定义、流程实例、任务

流程引擎&#xff1a;流程定义、流程实例、任务 流程定义(ProcessDefinition) 基于bpmn2图形流程 流程实例(ProcessInstance) 一个流程定义可以启动多个流程实例,流程实例之间互不影响 流程实例任务(Tasks) 一个流程实例对应多个流程任务(人工与自动)

流程引擎(flowable)之流程相关

代码示例&#xff1a;流程部署/发布 InputStream inputStream new DefaultResourceLoader().getResource("classpath:BusinessProcessBeanTest.test.bpmn20.xml").getInputStream();Deployment deploy configuration.getRepositoryService().createDeployment()//…

流程引擎应用及分析

介绍&#xff1a;工作流引擎目前比较热门的有Activiti、Flowable等&#xff0c;Flowable是Activiti(Alfresco持有的注册商标)的fork版本。下面就两种工作流引擎做一个比较和入门分析。 模块一 对比&#xff1a; Activiti现存文档比Flowable多&#xff0c;有大量与业务集成的文…

《Flowable流程引擎从零到壹》Flowable流程引擎介绍和实战项目初始化流程引擎实例

14天学习训练营导师课程&#xff1a; 邓澎波《Flowable流程引擎-基础篇【2022版】》 邓澎波《Flowable流程引擎-高级篇【2022版】》 学习笔记《Flowable流程引擎从零到壹》回城传送 ❤️作者主页&#xff1a;小虚竹 ❤️作者简介&#xff1a;大家好,我是小虚竹。Java领域优质创…

流程引擎的架构设计

流程引擎的架构设计 1 什么是流程引擎 流程引擎是一个底层支撑平台&#xff0c;是为提供流程处理而开发设计的。流程引擎和流程应用&#xff0c;以及应用程序的关系如下图所示。 常见的支撑场景有&#xff1a;Workflow、BPM、流程编排等。本次分享&#xff0c;主要从 BPM 流程…

流程引擎是什么?有什么作用?

编者按&#xff1a;本文详细论述了流程引擎的概念&#xff0c;流程引擎的作用以及选型的要旨&#xff0c;并介绍了自主研发具有中国特色的流程引擎。 关键词&#xff1a;流程引擎&#xff0c;集成性&#xff0c;数据分析&#xff0c;BPMN2.0规范&#xff0c;中国特色&#xff…

流程引擎BPM对比

流程引擎定义 流程引擎就是“业务过程的部分或整体在计算机应用环境下的自动化”&#xff0c;它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行&#xff0c;从而实现某个预期的业务目标&#xff0c;或者促使此目标的实现”。通俗的…

流程引擎camunda

简介 Camunda是一个基于Java的框架&#xff0c;支持用于工作流和流程自动化的BPMN、用于案例管理的CMMN和用于业务决策管理的DMN。笔者单位里主要是用于业务审批。 学习了解资料尽量去官方查看https://docs.camunda.org&#xff0c;查看版本7.18&#xff0c;一步一个环节比较详…