js纯ajax,自动完成JS类(纯JS, Ajax模式)

自动完成JS类(纯JS, Ajax模式)

更新时间:2009年03月12日 23:51:15   作者:

自动完成JS类,用户体验较好。封装成类,方便使用。本站

一、 封装的JS文件

//********************************************************

//创建日期: 2009-03-10

//作 者: oloen

//內容说明: 自动完成JS类

//用法:

// var auto = new autoComplete(客户端ID);

// auto.Init(document.all.客户端ID);

//********************************************************

//自动完成

function autoComplete(id)

{

var me = this;

//自动完成绑定控件客户端ID

me.AutoCompleteControlID

me.handle = null

me.DivResult ;

me.currentIndex = -1;

me.LastIndex = -1;

me.requestObj;

me.CurrentTD = '';

if(id != null && typeof(id) != undefined)

me.AutoCompleteControlID = id;

if(me.DivResult == null||typeof(me.DivResult)=="undefined")

{

me.DivResult = document.createElement("div");

var parent = document.getElementById(me.AutoCompleteControlID).parentElement;

if(typeof(parent)!="undefined"){

parent.appendChild(me.DivResult);

}

}

this.Init = function(obj)

{

me.handle = obj

me.AutoCompleteControlID = obj.id

}

this.Auto = function()

{

me.DivResult.style.position = "absolute";

me.DivResult.style.top = me.handle.getBoundingClientRect().top + 17;

me.DivResult.style.left = me.handle.getBoundingClientRect().left;

me.DivResult.style.width = me.handle.width;

me.DivResult.style.height = 20;

me.DivResult.style.backgroundColor = "#ffffff";

//如果按下 向上, 向下 或 回车

if (event.keyCode == 38 || event.keyCode == 40 || event.keyCode == 13)

{

me.SelectItem();

}

else

{

//恢复下拉选择项为 -1

currentIndex = -1;

if(window.XMLHttpRequest)

{

me.requestObj = new XMLHttpRequest();

if(me.requestObj.overrideMimeType)

me.requestObj.overrideMimeType("text/xml");

}

else if(window.ActiveXObject)

{

try

{

me.requestObj = new ActiveXObject("Msxml2.XMLHTTP");

}

catch(e)

{

me.requestObj = new ActiveXObject("Microsoft.XMLHTTP");

}

}

if(me.requestObj == null)

return;

me.requestObj.onreadystatechange = me.ShowResult;

me.requestObj.open("GET", "../Common/AutoComplete.aspx?InputValue=" + escape(me.handle.value), true);

me.requestObj.send();

}

}

this.ShowResult = function()

{

if (me.requestObj.readyState == 4)

{

me.DivResult.innerHTML = me.requestObj.responseText;

me.DivResult.style.display = "";

}

}

this.SelectItem = function()

{

//结果

var result = document.getElementById("Tmp_AutoComplete_tblResult");

if (!result)

return;

if(result.rows[me.LastIndex] != null)

{

result.rows[me.LastIndex].style.backgroundColor = "#FFFFFF";

result.rows[me.LastIndex].style.color = "#000000";

}

var maxRow = result.rows.length;

//向上

if (event.keyCode == 38 && me.currentIndex > 0)

me.currentIndex--;

//向下

if (event.keyCode == 40 && me.currentIndex < maxRow-1)

me.currentIndex++;

//回车

if (event.keyCode == 13)

{

me.Select()

me.InitItem();

return;

}

if(result.rows[me.currentIndex]!=undefined)

{

//选中颜色

result.rows[me.currentIndex].style.backgroundColor = "#3161CE";

result.rows[me.currentIndex].style.color = "#FFFFFF";

}

me.DivResult.style.height = maxRow * 15;

me.LastIndex = me.currentIndex;

}

this.Select = function()

{

var result = document.getElementById("Tmp_AutoComplete_tblResult");

if (!result)

return;

var ReturnValue = result.rows[me.currentIndex].ReturnValue;

if(ReturnValue != undefined)

{

me.DivResult.style.display = 'none';

//设置页面值

ReturnAutoComplete(ReturnValue);

}

}

this.Hide = function()

{

me.DivResult.style.display = 'none';

me.currentIndex = -1;

}

this.InitItem = function()

{

me.DivResult.style.display = 'none';

me.DivResult.innerHTML = "";

me.currentIndex = -1;

}

me.DivResult.onclick = function()

{

me.Auto();

}

document.getElementById(me.AutoCompleteControlID).onclick = function(){

me.Auto();

}

document.getElementById(me.AutoCompleteControlID).onkeyup = function(){

me.Auto();

}

document.getElementById(me.AutoCompleteControlID).onkeydown = function(){

if (event.keyCode == 13)

{

me.Select()

me.InitItem();

return;

}

}

document.getElementById(me.AutoCompleteControlID).onblur = function(){

me.Hide();

}

}

2 后台查询页面

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

//using System.Data.SqlClient;

//********************************************************

//创建日期: 2009-03-10

//作 者: oloen

//內容说明: 自动完成后台查询页面

//********************************************************

///

/// 自动完成后台查询页面

///

public partial class Common_AutoComplete : System.Web.UI.Page

{

const string tbStyle = @"";

///

/// 过滤条件

///

string Filter = string.Empty;

///

/// 查询值

///

string InputValue = string.Empty;

///

/// 自动完成类别

/// 目前只支持 售楼系统 UnitNo 查询

///

string Type = string.Empty;

///

/// 返回结果字符

///

string ReturnStr = string.Empty;

private void Page_Load(object sender, System.EventArgs e)

{

switch (Type.ToLower())

{

case "psunit":

default:

AutoPSUnitNo();

break;

}

Response.Clear();

Response.ContentType = "text/xml";

Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");

Response.Write(ReturnStr);

Response.End();

}

protected override void OnInit(EventArgs e)

{

base.OnInit(e);

Filter = Request.QueryString["Filter"] ?? "";

InputValue = Request.QueryString["InputValue"] ?? "";

InputValue.Replace("'","''");

}

///

/// 售楼系统房间编号自动完成

///

void AutoPSUnitNo()

{

if (!string.IsNullOrEmpty(InputValue))

{

ReturnStr = @"

#region 数据库操作

//string Sql = string.Format(@"SELECT TOP 10 UnitID,UnitNo,ProjectNo,PhaseNo,BlockNo FROM View_PS_Unit WHERE UnitNo LIKE '%{0}%'", InputValue);

//using (SqlDataReader sdr = DataAccessHelper.ExecuteReader(Sql) as SqlDataReader)

//{

// if (sdr == null || !sdr.HasRows)

// {

// ReturnStr = string.Empty;

// return;

// }

// while (sdr.Read())

// {

// string td = string.Format(@"

{0}", sdr["ProjectNo"].ToString());

// //td += string.Format(@"

{0}", sdr["PhaseNo"].ToString());

// //td += string.Format(@"

{0}", sdr["BlockNo"].ToString());

// td += string.Format(@"

{0}", sdr["UnitNo"].ToString());

// ReturnStr += string.Format(@"

{2}", sdr["UnitID"].ToString(), sdr["UnitNo"].ToString(), td);

// }

//}

#endregion

for (int i = 0; i < 10; i++)

{

string td = string.Format(@"

{0}", "编号");

td += string.Format(@"

{0}", "姓名");

td += string.Format(@"

{0}", i.ToString());

td += string.Format(@"

{0}", InputValue);

ReturnStr += string.Format(@"

{2}", i.ToString(), InputValue, td);

}

ReturnStr += @"

";

}

}

}

2 引用页面

无标题 1

var auto = new autoComplete('t1')

auto.Init(document.all.t1);

//选中后做的事情

function ReturnAutoComplete(ReturnValue)

{

alert(ReturnValue)

}

截个图给大家看看

20090312235112465.jpg

打包下载地址

相关文章

1a1b05c64693fbf380aa1344a7812747.png

这篇文章主要介绍了javascript数组克隆简单实现方法,实例分析了JavaScript中concat用于数组克隆的使用技巧,需要的朋友可以参考下2015-12-12

4f55910a645b073bc4fc65dc10dc14bd.png

这篇文章主要介绍了JS获取本周周一,周末及获取任意时间的周一周末功能,结合实例形式分析了js通过扩展实现针对日期的运算相关技巧,需要的朋友可以参考下2017-02-02

0ea3c7666119d5615e582f823fb3fad6.png

这篇文章主要介绍了微信小程序公用参数与公用方法用法,结合实例形式分析了微信小程序中公用参数与公用方法的简单定义与使用相关操作技巧,需要的朋友可以参考下2019-01-01

4f96a78db829b1556ff16de21e013c7a.png

这篇文章主要为大家详细介绍了js时间戳与日期格式之间相互转换,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-12-12

8cc1031babc6aff2319f1c6af8544aa0.png

这篇文章主要介绍了JavaScript获取客户端IP的方法(新方法)的相关资料,需要的朋友可以参考下2016-03-03

0c932a99bb7b6f23c937db507070cc7b.png

本人是Javascript菜鸟,下面是前几天学习Javascript的旅程心得,希望对和我一样的入门者有点用,也希望高手批评指正。2010-08-08

cca732bf65a93ed2ec0ac80c638460fe.png

今天小编就为大家分享一篇关于layui的下拉搜索框异步加载数据的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-09-09

2d9f31f2af7b675a3d153d2b7f1035a7.png

下面小编就为大家分享一篇JS实现在文本指定位置插入内容的简单示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2017-12-12

b452cee8ec5cd9e58ab98eba17281e59.png

本文给大家分享的是一组判断IP地址是否合法,判断子网掩码是否合法,验证输入的网关地址是否合法的javascript代码,十分的简单实用,有需要的小伙伴可以参考下。2015-05-05

f4838ec7e2d4da28e0b57d4e852dadd4.png

这篇文章主要介绍了小程序获取当前位置加搜索附近热门小区及商区的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-04-04

最新评论

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485435.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python opencv3 检测人

git&#xff1a;https://github.com/linyi0604/Computer-Vision 1 # coding:utf-82 3 import cv24 5 6 # 检测i方框 包含o方框7 def is_inside(o, i):8 ox, oy, ow, oh o9 ix, iy, iw, ih i 10 return ox > ix and ox ow < ix iw and oy oh < iy i…

朱松纯:AI从感知走向认知是必然趋势

来源&#xff1a;深度学习技术前沿1月28日&#xff0c;以"小数据、大任务"作为技术范式的强认知人工智能平台企业暗物智能科技&#xff08;以下简称“暗物智能”&#xff09;宣布&#xff0c;已于2020年年中完成5亿元人民币的A轮融资。本轮融资由赛领资本和吉富创投共…

科学家「黑进」果蝇大脑跑NLP任务,发现效率比BERT高

来源&#xff1a;机器之心最近一段时间&#xff0c;有关摩尔定律终结的讨论时常出现&#xff0c;深度学习越来越高的算力需求与芯片制造厂商们「挤牙膏」式的换代速度产生了不可调和的矛盾。对此&#xff0c;一些研究者们正在专注于常规架构的效率提升&#xff0c;也有一些研究…

卫星互联网行业深度报告:战火早已熊熊燃烧

来源&#xff1a;万联证券1、低轨卫星加速建设&#xff0c;协同 5G 与地面通信互补融合1.1 卫星互联网纳入新基建&#xff0c;未来蓝海无限。卫星互联网是基于卫星通信的互联网&#xff0c;通过一定数量的卫星形成规模组网&#xff0c;从而辐射 全球&#xff0c;构建具备实时信…

新基建下的自动驾驶:单车智能和车路协同之争

来源&#xff1a;德勤Deloitte编辑&#xff1a;蒲蒲2020年3月&#xff0c;随着中央政治会议的正式定调&#xff0c;“新基建”&#xff0c;即新型基础设施建设&#xff0c;成为公众新焦点。4月&#xff0c;发改委明确新基建范围。在新基建涉及的细分领域中&#xff0c;5G、物联…

2038: [2009国家集训队]小Z的袜子(hose)

2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 15879 Solved: 7205[Submit][Status][Discuss]Description 作为一个生活散漫的人&#xff0c;小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天&#xff0c;小…

Jeff Dean三执笔:一文看尽2020年谷歌AI重大突破

来源&#xff1a;AI前线作者&#xff1a;Jeff Dean译者&#xff1a;核子可乐策划&#xff1a;钰莹 在二十年前刚刚加入谷歌时&#xff0c;我们关注的问题只有一个——如何面向这么多不同种类的联网计算机提供一整套质量出色且涵盖范围全面的网络信息搜索服务。到如今&#xff0…

技术的顶点,是普惠人类还是超越人类

来源&#xff1a;大数据文摘我们很容易忽视我们在宏大的生态系统中的卓越地位&#xff0c;尤其是在一个容易依赖技术引领我们走向我们渴望的未来的时代。我们真的相信技术比人类更复杂和必要吗&#xff1f;被创造的东西真的能取代它的创造者吗&#xff1f;我们必须共同决定&…

HDU 2089 不要62

杭州人称那些傻乎乎粘嗒嗒的人为62&#xff08;音&#xff1a;laoer&#xff09;。 杭州交通管理局经常会扩充一些的士车牌照&#xff0c;新近出来一个好消息&#xff0c;以后上牌照&#xff0c;不再含有不吉利的数字了&#xff0c;这样一来&#xff0c;就可以消除个别的士司机…

生态位构建-一种普遍的主动进化

来源&#xff1a;混沌巡洋舰人类正在塑造地球上生命进化的未来。我们不仅造成了大规模的物种灭绝&#xff0c;我们还迫使动物、植物和真菌适应我们的人造世界: 例如&#xff0c;城市鸟类现在唱得更高了&#xff0c;因为这种音调似乎有助于它们的歌声传递交通的声音。但是&#…

Openstack入门篇(十一)之neutron服务(控制节点)的部署与测试

1.Neutron的介绍 Neutron 为整个 OpenStack 环境提供网络支持&#xff0c;包括二层交换&#xff0c;三层路由&#xff0c;负载均衡&#xff0c;防火墙和 *** 等。Neutron 提供了一个灵活的框架&#xff0c;通过配置&#xff0c;无论是开源还是商业软件都可以被用来实现这些功能…

【物理方程】物理学中最难的方程之一,你知道多少?

来源&#xff1a;数学中国物理学是一门包含许多方程式的学科&#xff0c;这些方程描述了从微观世界粒子的行为到宏观宇宙的演化。在所有的物理方程中&#xff0c;有一组在数学上被认为极具挑战性&#xff0c;还被克莱数学研究所列为七个“千禧年大奖问题”之一&#xff0c;它们…

2021年10个激动人心的工程里程碑

来源&#xff1a;IEEE电气电子工程师未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&#xff1b;开展互联网&#xff08;城市&#xff09;云脑研究计划&#xff0c;构建互联网&#xff08;城市&#xff09;云脑技术…

设置 sideload Outlook Add-ins

上期&#xff0c;我们讲到了用前端技术去建立一个outlook add-ins 我们今天来讲解一下怎样测试一个sideload outlook add-ins。 1. 我们需要登录Outlook在Office 365中。 2. 选择右上角设置按钮&#xff0c;然后选择Manage add-ins选项 3. 打开manage add-in的页面之后&#xf…

用户体验已成过去时 AI要从公民乃至社会的角度去思考问题

来源&#xff1a;Venture Beat作者&#xff1a;Jarno M. Koponen编译&#xff1a;科技行者时至今日&#xff0c;科技巨头及其基于AI的数字平台与解决方案&#xff0c;完全有能力影响全球领导人、民族国家、跨国企业、全球股市乃至每位个人的命运。目前&#xff0c;各大主要数字…

css比较特殊选择器汇总(持续更新)

1、css选择器中加号&#xff08;&#xff09;是啥意思&#xff1f; 加号&#xff08;&#xff09;为&#xff1a;相邻同胞选择器&#xff0c;如果需要选择紧接在另一个元素后的元素&#xff0c;而且二者有相同的父元素&#xff0c;可以使用相邻兄弟选择器(Adjacent sibling sel…

《自然》:深度学习超分辨显微成像方法

来源&#xff1a;清华大学自动化系2021年1月21日&#xff0c;中国人工智能学会理事长、中国工程院院士、清华大学自动化系、清华大学脑与认知科学研究院戴琼海课题组与中国科学院生物物理所李栋课题组在《自然•方法》&#xff08;Nature Methods&#xff09;杂志发表了题为光学…

人工肌肉重大突破登上 Science!多国科学家联合实现全新驱动机

来源&#xff1a;雷锋网作者&#xff1a;付静2021 年&#xff0c;机器人已经「成精」了&#xff0c;公然吵架、组团热舞再也不是愚蠢的人类专属。然鹅在很多人心里&#xff0c;机器人还是僵硬、机械甚至冰冷的。即便如此&#xff0c;技术日新月异&#xff0c;柔性机器人快速发展…

盘点|应用落地,构建城市“大脑”

来源&#xff1a;IDC圈北京&#xff1a;“云”建智慧之都“全国政治中心、文化中心、国际交往中心、科技创新中心……”城市战略定位下的北京正处在落实首都城市战略定位、建设国际一流和谐宜居之都的关键时期。2020年初&#xff0c;新冠疫情爆发&#xff0c;北京市政府快速响应…

深度信念网络研究现状与展望

来源&#xff1a;专知摘要: 深度信念网络(Deep belief network, DBN)是一种基于深度学习的生成模型, 克服了传统梯度类学习算法在处理深层结构所面临的梯度消失问题, 近几年来已成为深度学习领域的研究热点之一.基于分阶段学习的思想, 人们设计了不同结构和学习算法的深度信念网…