广告
返回顶部
首页 > 资讯 > 精选 >用js实现输入提示功能
  • 315
分享到

用js实现输入提示功能

2023-06-17 13:06:08 315人浏览 八月长安
摘要

这篇文章主要讲解了“用js实现输入提示功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“用js实现输入提示功能”吧!完成有以下功能:输入字符会把以输入字符开头的提示出来。支持上下方向键选择提

这篇文章主要讲解了“用js实现输入提示功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“用js实现输入提示功能”吧!

完成有以下功能:

输入字符会把以输入字符开头的提示出来。

支持上下方向键选择提示选项,支持循环

支持绑定一个数组提示,支持ajax传递输入框值请求数据。

支持多个选择的dom元素一块绑定数据实现输入提示。各dom元素也可以单独绑定自己的数据实现输入提示,互不影响。

支持中文。

首先是js的核心部分,其各部分都有较详细的说明,代码如下:

view source print ?

  ;( function (window){              var autoComplete= function (o){            var handler=( function (){                var handler= function (e,o){ return new handler.prototype.init(e,o); };                 handler.prototype={                    e: null , o: null , timer: null , show:0, input: null , popup: null ,                    init: function (e,o){                         this .e=e, this .o=o,                        this .input= this .e.getElementsByTagName( this .o.input)[0],                        this .popup= this .e.getElementsByTagName( this .o.popup)[0],                        this .initEvent();                    },                   match: function (quickExpr,value,source){                        var li = null ;                       for ( var i in source){                           if ( value.length>0 && quickExpr.exec(source[i])!= null ){                               li = document.createElement( 'li' );                               li.innerhtml = '' +source[i]+ 'a>' ;                              this .popup.appendChild(li);                           }                       }                       if ( this .popup.getElementsByTagName( 'a' ).length)                           this .popup.style.display= 'block' ;                       else                            this .popup.style.display= 'none' ;                    },                    ajax: function (type,url,quickExpr,search){                        var xhr = window.ActiveXObject ? new ActiveXObject( "Microsoft.XMLHttp" ) : new XMLHttpRequest();                        xhr.open(type,url, true );                         xhr.setRequestHeader( "Content-Type" , "application/x-www-fORM-urlencoded" );                       var that= this ;                       xhr.onreadystatechange = function (){                           if (xhr.readyState==4) {                                if (xhr.status==200) {                                    var data = eval(xhr.responseText);                                   that.match(quickExpr,search,data);                                 } else {                                    alert( "请求页面异常!" );                                 }                            }                        };                        xhr.send( null );                    },                   fetch: function (ajax,search,quickExpr){                        var that= this ;                        this .ajax(ajax.type,ajax.url+search,quickExpr,search);                   },                    initEvent: function (){                         var that= this ;                       this .input.onfocus = function (){                            if ( this .inputValue) this .value = this .inputValue;                            var value= this .value, quickExpr=RegExp( '^' +value, 'i' ), self= this ;                            var els = that.popup.getElementsByTagName( 'a' );                            if (els.length>0) that.popup.style.display = 'block' ;                            that.timer=setInterval( function (){                                if (value!=self.value){                                    value=self.value;                                    that.popup.innerHTML= '' ;                                    if (value!= '' ){                                       quickExpr=RegExp( '^' +value);                                        if (that.o.source) that.match(quickExpr,value,that.o.source);                                        else if (that.o.ajax) that.fetch(that.o.ajax,value,quickExpr);                                    }                                }                            },200);                        };                       this .input.onblur = function (){                             if ( this .value!= this .defaultValue) this .inputValue = this .value;                            clearInterval(that.timer);                            var current=-1;                             var els = that.popup.getElementsByTagName( 'a' );                            var len = els.length-1;                           var aClick = function (){                               that.input.inputValue = this .firstChild.nodeValue;                                that.popup.innerHTML= '' ;                                that.popup.style.display= 'none' ;                               that.input.focus();                            };                            var aFocus = function (){                                for ( var i=len; i>=0; i--){                                    if ( this .parentNode===that.popup.children[i]){                                       current = i;                                        break ;                                    }                                }                                //that.input.value = this.firstChild.nodeValue;                                for ( var k in that.o.elemCSS.focus){                                    this .style[k] = that.o.elemCSS.focus[k];                                }                            };                           var aBlur= function (){                               for ( var k in that.o.elemCSS.blur)                                   this .style[k] = that.o.elemCSS.blur[k];                            };                            var aKeydown = function (event){                                eventevent = event || window.event;                                 if (current === len && event.keyCode===9){                                     that.popup.style.display = 'none' ;                                } else if (event.keyCode==40){                                     current++;                                    if (current<-1) current=len;                                   if (current>len){                                        current=-1;                                       that.input.focus();                                    } else {                                        that.popup.getElementsByTagName( 'a' )[current].focus();                                    }                                } else if (event.keyCode==38){                                    current--;                                   if (current==-1){                                        that.input.focus();                                   } else if (current<-1){                                        current = len;                                        that.popup.getElementsByTagName( 'a' )[current].focus();                                    } else {                                       that.popup.getElementsByTagName( 'a' )[current].focus();                                    }                                }                            };                            for ( var i=0; i<els.length; i++){                                 els[i].onclick = aClick;                                els[i].onfocus = aFocus;                                els[i].onblur = aBlur;                                els[i].onkeydown = aKeydown;                            }                        };                        this .input.onkeydown = function (event){                           eventevent = event || window.event;                             var els = that.popup.getElementsByTagName( 'a' );                            if (event.keyCode==40){                                if (els[0]) els[0].focus();                            } else if (event.keyCode==38){                               if (els[els.length-1]) els[els.length-1].focus();                            } else if (event.keyCode==9){                                if (event.shifTKEy== true ) that.popup.style.display = 'none' ;                            }                        };                        this .e.onmouseover = function (){ that.show=1; };                        this .e.onmouseout = function (){ that.show=0; };                        addEvent.call(document, 'click' , function (){                            if (that.show==0){                                that.popup.style.display= 'none' ;                            }                        });                     }                };                handlerhandler.prototype.init.prototype=handler.prototype;                 return handler;             })();            if ( this .length){                 for ( var a= this .length-1; a>=0; a--){                     handler( this [a],o);                }            } else {                 handler( this ,o);           }            return this ;       };       return window.autoComplete = autoComplete;               })(window);

其中了一些全局的自定义函数,如addEvent和在例子中将要用到的getElementsByClassName函数如下:

view source print ?

var getElementsByClassName = function (searchClass, node, tag) {            nodenode = node || document, tagtag = tag ? tag.toUpperCase() : "*" ;            if (document.getElementsByClassName){                var temp = node.getElementsByClassName(searchClass);                if (tag== "*" ){                    return temp;               } else {                    var ret = new Array();                    for ( var i=0; i<temp.length; i++)

感谢各位的阅读,以上就是“用js实现输入提示功能”的内容了,经过本文的学习后,相信大家对用js实现输入提示功能这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 用js实现输入提示功能

本文链接: https://www.lsjlt.com/news/289468.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 用js实现输入提示功能
    这篇文章主要讲解了“用js实现输入提示功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“用js实现输入提示功能”吧!完成有以下功能:输入字符会把以输入字符开头的提示出来。支持上下方向键选择提...
    99+
    2023-06-17
  • ASP.NET MVC使用typeahead.js实现输入智能提示功能
    使用typeahead.js可以实现预先输入,即智能提示,本篇在ASP.NET MVC下实现。实现效果如下: 首先是有关城市的模型。 public class City ...
    99+
    2022-11-13
  • css如何实现输入自动提示搜索提示功能
    这篇文章将为大家详细讲解有关css如何实现输入自动提示搜索提示功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码如下:.sugLayerDiv{ position:relative;&nbs...
    99+
    2023-06-08
  • javascript如何实现input输入框模糊提示功能
    这篇文章主要为大家展示了“javascript如何实现input输入框模糊提示功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascript如何实现in...
    99+
    2022-10-19
  • javascript实现输入框内容提示及隐藏功能
    有时输入框较小,希望输入内容后,出现一个有放大输入内容的提示框 实现思路 页面上先编写出提示框,然后将提示框的css属性:display设置成none,隐藏起来 获...
    99+
    2022-11-12
  • JS实用案例之输入智能提示(打字机输出效果)
    目录前言1、输入智能提示效果演示案例需求JavaScript实现2、打字机输出效果演示案例需求JavaScript实现结语前言 本篇文章所有示例来自于牛客网题库/在线编程/JS篇,这...
    99+
    2023-01-15
    js输入框提示 js文本框输入提示功能 js打字机效果
  • Android编程实现输入框动态自动提示功能
    本文实例讲述了Android编程实现输入框动态自动提示功能。分享给大家供大家参考,具体如下: 关于AutoCompleteTextView的使用,我想大家并不陌生,对其设定上A...
    99+
    2022-06-06
    自动 输入 动态 输入框 Android
  • Android开发中怎么实现一个输入框提示功能
    这篇文章给大家介绍Android开发中怎么实现一个输入框提示功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。可以使用cursor来动态加载AutoCompleteTextView的数据,从而 实现时时搜索提示,要实现...
    99+
    2023-05-31
    android roi
  • Vue实现输入框@功能的示例代码
    目录前言成员列表创建使用输入框获取光标的坐标保存光标插入文本运行结果总结前言 前几篇文章中分别介绍了如何实现聊天输入框的双向绑定、回车键发送、粘贴文本图片等功能,本着完善输入框的目的...
    99+
    2022-11-13
  • js如何实现限制输入框只能输入数字
    这篇文章主要介绍了js如何实现限制输入框只能输入数字,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。例子:html代码<input ty...
    99+
    2022-10-19
  • Android编程实现打勾显示输入密码功能
    本文实例讲述了Android编程实现打勾显示输入密码功能。分享给大家供大家参考,具体如下: main.xml: <?xml version="1.0" enc...
    99+
    2022-06-06
    输入 Android
  • js实现验证码输入框示例详解
    目录前言思路遇到的问题HTMLCSSJS前言 验证码输入框应该是很常见的需求吧,不知道各位小伙伴在在遇到的时候是选择找一找插件还是自己动手撸一个呢?我花了点时间撸了一个出来,实际体验...
    99+
    2022-11-13
  • C#实现弹窗提示输入密码
    本文实例为大家分享了C#实现弹窗提示输入密码的具体代码,供大家参考,具体内容如下 String PM = Interaction.InputBox("请输入密码", "输入密码", ...
    99+
    2022-11-13
  • PHP实现表单和用户输入功能
    这篇文章主要讲解了“PHP实现表单和用户输入功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP实现表单和用户输入功能”吧!PHP 表单和用户输入PHP...
    99+
    2022-10-19
  • Android自动文本框输入识别提示功能代码
    自动提示文本框(AutoCompleteTextView)可以加强用户体验,缩短用户的输入时间(百度的搜索框就是这个效果)。 相信大家都熟悉自动识别提示吧,在我们的生活中随处可...
    99+
    2022-06-06
    输入 文本框 Android
  • JS显示隐藏功能怎么实现
    这篇文章主要介绍“JS显示隐藏功能怎么实现”,在日常操作中,相信很多人在JS显示隐藏功能怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JS显示隐藏功能怎么实现”的疑惑...
    99+
    2022-10-19
  • php如何实现边输入边显示查询结果功能
    这篇文章主要介绍了php如何实现边输入边显示查询结果功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php如何实现边输入边显示查询结果功能文章都会有所收获,下面我们一起来看看吧。PHP是一种常用的服务器端脚本...
    99+
    2023-07-06
  • Python使用Tkinter GUI实现输入验证功能
    目录输入验证1、Tkinter 验证简介1.1 validate命令1.2 validatecommand1.3 invalidcommand2、完整示例输入验证 在本文中,将介绍如...
    99+
    2022-11-10
  • C#怎么实现弹窗提示输入密码
    这篇文章主要介绍“C#怎么实现弹窗提示输入密码”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C#怎么实现弹窗提示输入密码”文章能帮助大家解决问题。具体内容如下String PM ...
    99+
    2023-06-29
  • shell命令行如何实现输入与输出功能
    这篇文章将为大家详细讲解有关shell命令行如何实现输入与输出功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。标准输入/输出和重定向,Linux发行版Fedora Core Linux,而Red Hat...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作