`
gzg844cz
  • 浏览: 42590 次
社区版块
存档分类
最新评论

自己写的自动完成js插件源码

 
阅读更多

  经测试,此插件兼容ie,chrome,firefox。 //autocomplete 0.2 ////////////////////////////////////////////////// /////////////////////////////////////////////////// //////////////////////// var g_divName = undefined; var g_ajaxFunc = undefined; var g_tbx = undefined; var g_hid = undefined; var g_funcMC = undefined; var g_funcHid = undefined; var g_funcBZ = undefined; var g_isInited = false; var g_zzArray; var g_isPaged = false; var g_pageMax = 10; var g_pageIndex = 1; //public////////////////////////////////////////// /////////////////////////////////////////////////// ///////////// //ajaxFunc:用于返回数组的ajax函数; //tbx:用于存放选中的内容的textbox的id; //hid:用于存放选中的隐藏属性的hidden的id; //funcMC(item):用于返回MC的函数; //funcHid(item):用于返回HID的函数; //funcBZ(item):用于返回BZ的函数; //divName:用于列出autoComplete的list的id; function onInitAutoComplete(ajaxFunc, tbx, hid, funcMC, funcHid, funcBZ, divList) { var tbTerm = document.getElementById(tbx); if (tbTerm == undefined) { return; } if (tbTerm.attachEvent) { tbTerm.attachEvent("onkeyup", onTextChange_ex); } else if (tbTerm.addEventListener) { tbTerm.addEventListener("keyup", onTextChange_ex, false); } g_ajaxFunc = ajaxFunc; g_tbx = tbx; g_hid = hid; g_funcMC = funcMC; g_funcHid = funcHid; g_funcBZ = funcBZ; g_isInited = true; if (arguments[6] == undefined) { g_divName = 'div_AutoComplete_list_wyyy'; var br = document.createElement("br"); var divList = document.createElement("DIV"); divList.id = g_divName; divList.style.zIndex = "10"; divList.style.textAlign = "left"; divList.style.position = "absolute"; divList.style.width = parseInt(tbTerm.style.width) + 7 + "px"; var praentElement = tbTerm.parentElement || tbTerm.parentNode; praentElement.appendChild(br); praentElement.appendChild(divList); document.getElementById(g_divName).style.display = ""; } else if (arguments[6] != undefined) { g_divName = divList; } } function setPageSize(pageSize) { g_pageMax = pageSize } function setListWidth(nWidth) { var divList = document.getElementById(g_divName); divList.style.width = nWidth; } function onTextChange_ex() { var tbx = document.getElementById(g_tbx); onTextChange(tbx); } function onTextChange(oText) { if (g_isInited == false) return; if (oText.value == null || oText.value == "") { document.getElementById(g_divName).innerHTML = ""; return; } var event = arguments[0] || window.event; var ls_keycode = event.keyCode || event.charCode; if (ls_keycode != 40 && ls_keycode != 38 && ls_keycode != 13) g_ajaxFunc(oText.value, f_createItemList); } //private///////////////////////////////////////// //////////////////////////////////////// function f_clrCurrent() { var ls_TRName = "tr" + g_nCurrentTr; var trObj = document.getElementById(ls_TRName); if (trObj != undefined) { f_ClrColor(trObj); } } function f_setCurrent() { var ls_TRName = "tr" + g_nCurrentTr; var trObj = document.getElementById(ls_TRName); if (trObj != undefined) { f_SetColor(trObj); } } function f_createItemList(ls_zzArray) { g_pageIndex = 1; g_zzArray = ls_zzArray; g_isPaged = false; var zzArray = ls_zzArray; var arrayLen = zzArray.length; if (arrayLen > g_pageMax) { arrayLen = g_pageMax; g_isPaged = true; } var ls_InnerHtml = f_createPage(0, arrayLen, zzArray); document.getElementById(g_divName).innerHTML = ls_InnerHtml; g_nCurrentTr = 0; f_setCurrent(); } //开始位置,长度,症状数组 function f_createPage(nPageStart, arrayLen, zzArray) { var ls_InnerHtml = ""; for (var i = nPageStart; i "; ls_InnerHtml += "" + g_funcMC(zzArray[i]) + ""; if (g_funcHid != undefined) ls_InnerHtml += ""; ls_InnerHtml += ""; if (g_funcBZ != undefined) ls_InnerHtml += "" + g_funcBZ(zzArray[i]) + ""; ls_InnerHtml += ""; } if (g_isPaged == true) { ls_InnerHtml += f_pageArray(zzArray); } ls_InnerHtml += ""; return ls_InnerHtml; } function f_pageGoto(nPageIndex) { g_pageIndex = nPageIndex; var zzArray = g_zzArray; var arrayLen = g_pageMax; if (g_zzArray.length - g_pageMax * (nPageIndex - 1) "; var nPageNum = zzArray.length / g_pageMax; if ((zzArray.length % g_pageMax) > 0) { nPageNum++; } for (var i = 1; i " + i + " "; } else { ls_InnerHtml += " " + i + " "; } } ls_InnerHtml += ""; return ls_InnerHtml; } function f_pageMouseOver(obj) { obj.style.cursor = "hand"; } function f_pageMouseOut(obj) { obj.style.cursor = "normal"; } var g_nOldColor; var g_nCurrentTr = 0; function f_SetColor(Obj) { g_nOldColor = Obj.style.backgroundColor; Obj.style.backgroundColor = "#99ccff"; } function f_ClrColor(Obj) { Obj.style.backgroundColor = g_nOldColor; } var g_isMouseOn = false; function f_mouseOn() { f_clrCurrent(); g_isMouseOn = true; } function f_mouseOut() { f_setCurrent(); g_isMouseOn = false; } function onTextSelected(obj) { var ls_idName = obj.id; var rowID = ls_idName.substr(2); ls_idName = "td" + rowID; var obj = document.getElementById(ls_idName); var obj2 = obj.childNodes[1].value; if (document.getElementById(g_hid) != undefined) document.getElementById(g_hid).value = obj2; var tbx_zz = document.getElementById(g_tbx); if (tbx_zz != undefined) { tbx_zz.value = obj.innerText || obj.textContent; tbx_zz.focus(); } document.getElementById(g_divName).innerHTML = ""; g_nCurrentTr = -1; g_isMouseOn = false; if (tbx_zz != undefined) { tbx_zz.focus(); } } document.onkeydown = function() { var event = arguments[0] || window.event; var ls_keycode = event.keyCode || event.charCode; switch (ls_keycode) { case 40: //down if (g_isMouseOn == true) return; var ls_TRNamePre = "tr" + g_nCurrentTr; var trObjPre = document.getElementById(ls_TRNamePre); if (trObjPre != undefined) { f_ClrColor(trObjPre); } g_nCurrentTr++; var ls_TRName = "tr" + g_nCurrentTr; var trObj = document.getElementById(ls_TRName); if (trObj != undefined) { f_SetColor(trObj); } else { g_nCurrentTr--; ls_TRName = "tr" + g_nCurrentTr; trObj = document.getElementById(ls_TRName); if (trObj != undefined) { f_SetColor(trObj); } } return false; case 38: //up if (g_isMouseOn == true) return; var ls_TRNamePre = "tr" + g_nCurrentTr; var trObjPre = document.getElementById(ls_TRNamePre); if (trObjPre != undefined) { f_ClrColor(trObjPre); } g_nCurrentTr--; var ls_TRName = "tr" + g_nCurrentTr; var trObj = document.getElementById(ls_TRName); if (trObj != undefined) { f_SetColor(trObj); } else { g_nCurrentTr++; ls_TRName = "tr" + g_nCurrentTr; trObj = document.getElementById(ls_TRName); if (trObj != undefined) { f_SetColor(trObj); } } return false; case 13: //enter ls_idName = "td" + g_nCurrentTr; var obj = document.getElementById(ls_idName); var obj2 = ""; if (obj != undefined) { obj2 = obj.childNodes[1].value; var tbx = document.getElementById(g_tbx) if (tbx != undefined) tbx.value = obj.innerText || obj.textContent; } if (document.getElementById(g_hid) != undefined) document.getElementById(g_hid).value = obj2; document.getElementById(g_divName).innerHTML = ""; g_nCurrentTr = -1; return false; case 27: //esc document.getElementById(g_divName).innerHTML = ""; break; default: break; } return true; } //end of autocomplete ////////////////////////////////////////////////// /////////////////////////////////////////////////// /////////////////////////////  下次更新使用实例。
分享到:
评论

相关推荐

    Chrome插件-自动登录GitHub 实例源码

    本实例源码是针对自动登录GitHub的Chrome插件,其核心原理是通过JavaScript来实现自动填写和提交表单,简化用户登录流程。同样的思路可以应用于其他需要自动登录的网站,如淘宝(Taobao)、京东(JD)等。 一、Chrome...

    【JS相关插件】自动完成提示插件(jquery.autocomplete)

    "【JS相关插件】自动完成提示插件(jquery.autocomplete)" 这个标题指出了我们讨论的核心是JavaScript的一个插件,它主要用于实现自动完成或建议输入的功能。"jquery.autocomplete"是这个插件的名字,表明它是基于...

    Eclipse的JavaScript插件 JSEditor

    Eclipse作为一个强大的开源集成开发环境(IDE),广泛用于Java编程,但...使用Eclipse的JavaScript插件JSEditor,意味着你可以在一个专业且功能全面的环境中编写和调试JavaScript代码,享受到高效且便捷的开发体验。

    大漠插件和天使插件的文档源码和dll

    首先,"大漠插件"是一款功能强大的自动化工具,主要用在网络游戏上,它支持多种编程语言,如JavaScript、VBScript等,使得用户可以编写脚本来完成各种复杂任务,如自动打怪、采集资源、自动交易等。大漠插件的核心...

    vue在线编辑插件源码

    Luckysheet是一款基于Vue.js开发的开源在线表格编辑器,功能强大且灵活,能够提供类似Excel的在线编辑体验。它广泛应用于数据分析、报表制作、数据可视化等领域,尤其适合需要在网页上实现复杂表格编辑功能的开发者...

    chrome自动填写表单插件

    Chrome自动填写表单插件是一种方便用户快速填充网页表单的工具,尤其适用于频繁需要填写相同信息的场景,如在线注册、购物结账等。它通过识别URL来判断是否需要激活自动填充功能,如果URL以"form.php"结尾,表明这是...

    简单的chrome插件,实现自动登录.

    通过学习和理解这个自动登录的Chrome插件,开发者可以进一步提升对浏览器扩展开发的理解,同时也能掌握到如何利用JavaScript和Chrome API来解决实际问题。这不仅有助于个人技能提升,也为未来创建更多实用的浏览器...

    Typecho付费阅读自媒体插件源码

    【Typecho付费阅读自媒体插件源码】是一个专为Typecho博客平台设计的插件,旨在帮助Typecho网站管理员实现付费阅读功能,从而为自媒体创作者提供了一种有效的盈利模式。这个插件的独特之处在于它不仅提供了基本的...

    自动填写表单的chrome插件

    标题中的“自动填写表单的chrome插件”指的是一个用于谷歌浏览器(Chrome)的扩展程序,它的核心功能是在用户访问特定类型的网页时自动填充表单数据。这种插件可以极大地提高用户在在线填写表单时的效率,尤其适用于...

    两个比较好用的Eclipse中javascript插件jsEditor jsEclipse

    本文将详细介绍两款在Eclipse中广受欢迎的JavaScript插件:jsEditor和jsEclipse。 首先,我们来看jsEditor。这款插件专为Eclipse设计,旨在提供一个高效、便捷的JavaScript开发环境。jsEditor的特点包括代码高亮、...

    jquery九宫格自动锁屏插件fcode.js实例源码.rar

    总的来说,jQuery九宫格自动锁屏插件fcode.js实例源码是一个融合了布局设计、用户交互、安全性和用户体验的综合解决方案。通过研究和使用这个插件,开发者可以更好地掌握JavaScript和jQuery在复杂场景中的应用,同时...

    狂雨小说系统源码带全部插件+采集规则(可运营)

    听书插件带教程、七牛云存储、百度自动推送、 2套收费白色模板+手机+电脑端、单本采集插件、3个采集规则、源码 1.先安装网站源码 2.其次安装其余插件和模板 ...自动推送js弋码插件·带教程(价值30元)

    javascript代码自动补全插件

    JavaScript代码自动补全插件是开发过程中非常实用的工具,它们极大地提高了开发效率,通过智能提示和自动补全功能帮助程序员快速编写代码。本篇主要介绍两款JavaScript代码自动补全插件:Firebug和Firebug ...

    DTcms 4.0Menu菜单插件源码

    《DTcms 4.0 Menu菜单插件源码解析与应用》 DTcms是一款流行的开源内容管理系统,其4.0版本引入了Menu菜单插件,为网站构建提供了强大的导航支持。该插件的核心在于帮助用户方便地管理和创建多级菜单,以适应不同...

    1.69插件可换线_1.69插件_问道1.69插件_源码.zip

    插件的开发涉及到编程语言的选择,如C++、Python、JavaScript等,以及对游戏协议的理解。对于“问道1.69插件”,开发者可能需要掌握游戏的网络通信协议,以实现与游戏服务器的实时交互。此外,插件的安全性也是一个...

    js自动对齐插件分享

    本文将深入探讨一种名为“JS自动对齐插件”的工具,它能够帮助开发者快速实现JavaScript代码的自动化格式化,提升开发效率。 首先,让我们了解什么是代码对齐。代码对齐是指通过一定的规则使代码中的变量、函数、...

    一个的电影院的选座JS插件源码.zip

    这个压缩包文件“一个的电影院的选座JS插件源码.zip”似乎包含了一个用于电影院在线选座的JavaScript插件的源代码。让我们逐一解析其中的文件和可能的知识点: 1. **step3.html, step2.html, index.html**: 这些...

    精美jQuery插件及源码

    在Web开发领域,jQuery是一个广泛使用的...不仅可以学习到实际的开发技巧,还能通过源码理解插件的工作原理,进而进行二次开发或自定义,提升自己的技术水平。无论是初学者还是经验丰富的开发者,都能从中受益匪浅。

    json比对js插件

    总结起来,JSON比对JS插件是开发过程中不可或缺的辅助工具,它们通过自动格式化、深度比对和高亮显示功能,帮助开发者快速识别和理解JSON数据的差异,从而提高代码质量和维护性。对于处理JSON数据的项目,掌握这类...

    [精华]网站论坛源码C# Jquery,完全自制,有很多jquery自己写的插件

    C#是微软开发的一种面向对象的编程语言,广泛应用于构建Web应用程序,而Jquery则是JavaScript的一个强大库,简化了DOM操作、事件处理和动画效果。 【描述】中的内容重复,但进一步强调了源码是完全自制的,并且包含...

Global site tag (gtag.js) - Google Analytics