900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > jQuery实现文本框邮箱输入自动补全效果【jquery】

jQuery实现文本框邮箱输入自动补全效果【jquery】

时间:2023-12-30 04:40:25

相关推荐

jQuery实现文本框邮箱输入自动补全效果【jquery】

web前端|js教程

jquery文本框输入事件,jquery文本框邮箱输入,jquery文本框,jquery输入提示功能,jquery邮箱提

web前端-js教程

邮箱自动完成的效果在网站上大多都看过,但是质量参差不齐,今天突然在网上看到一篇博客,感觉这个插件很好,就想来写一下分享给大家!

校园网站cms源码,ubuntu分区用efi,爬虫插件怎样删除,php:phpstorm,大良seo专家lzw

效果图如下:

菠菜站源码,vscode设置关键字,ubuntu wifi标志,tomcat改为服务启动,长形黑色爬虫,服务器php升级,玉溪谷歌seo营销公司,网站栏目设置说明,destoon绿色苗木网站模板lzw

wap php网站源码,vscode go 配置,ubuntu18 救援模式,idea检测tomcat,mt4 sqlite,百度word插件,去哪儿 yo前端框架,西安爬虫治蚊,php开发项目案例,seo进阶培训,帝国cms做电影网站,网页动效做出渐变色,网站模板 在线考试,下载页面源码html,管理系统 gb,二手车批发网站源代码小程序lzw

完整demo代码如下:

邮箱地址自动完成功能.demo p {width:1000px; margin-left:auto; margin-right:auto;}.input{padding:12px; width:300px; border:1px solid #c2c2c2; border-radius:4px; box-shadow:0 0 1px #fff, inset 0 0 2px rgba(0,0,0,.15); background-color:#F2F2F2; font-size:14px;}.emailist{border:1px solid #bdbdbd; border-radius: 4px; background-color:#fff; color:#666; font-size:14px; list-style-type:0; padding:0; margin:0; overflow:hidden;}.emailist li{padding:2px 11px; cursor:pointer;}.emailist .on, .emailist li:hover{background-color:#eee;}$(".inputMailList").mailAutoComplete();//使用方法

js实现效果代码(jquery.mailAutoComplete-4.0.js)如下:

(function($) { $.fn.mailAutoComplete = function(options) { var defaults = { className: "emailist", email: ["","","","","","","","","",""], //邮件数组 zIndex: 11 }; // 最终参数 var params = $.extend({}, defaults, options || {}); // 是否现代浏览器 var isModern = typeof window.screenX === "number", visibility = "visibility"; // 键值与关键字 var key = { "up": 38, "down": 40, "enter": 13, "esc": 27, "tab": 9 }; // 组装HTML的方法 var fnEmailList = function(input) { var htmlEmailList = \, arrValue = input.value.split("@"), arrEmailNew = []; $.each(params.email, function(index, email) { if (arrValue.length !== 2 || arrValue[1] === "" || email.indexOf(arrValue[1].toLowerCase()) === 0) { arrEmailNew.push(email);} }); $.each(arrEmailNew, function(index, email) { htmlEmailList = htmlEmailList + \+ arrValue[0] + "@" + email +\; });return htmlEmailList;}; // 显示还是隐藏 var fnEmailVisible = function(ul, isIndexChange) { var value = $.trim(this.value), htmlList = \; if (value === "" || (htmlList = fnEmailList(this)) === "") { ul.css(visibility, "hidden"); } else { isIndexChange && (this.indexSelected = -1); ul.css(visibility, "visible").html(htmlList); } }; return $(this).each(function() { this.indexSelected = -1; // 列表容器创建 var element = this; var eleUl = $(\).css({ position: "absolute", marginTop: element.offsetHeight, minWidth: element.offsetWidth - 2, visibility: "hidden", zIndex: params.zIndex }).addClass(params.className).bind("click", function(e) { var target = e && e.target; if (target && target.tagName.toLowerCase() === "li") {$(element).val(target.innerHTML).trigger("input");$(this).css(visibility, "hidden");element.focus(); // add on -11-20 } });$(this).before(eleUl); // IE6的宽度 if (!window.XMLHttpRequest) { eleUl.width(element.offsetWidth - 2); } // 不同浏览器的不同事件 isModern? $(this).bind("input", function() { fnEmailVisible.call(this, eleUl, true); }): element.attachEvent("onpropertychange", function(e) { if (e.propertyName !== "value") return; fnEmailVisible.call(element, eleUl, true);});$(document).bind({ "click": function(e) {var target = e && e.target, htmlList = \;if (target == element && element.value && (htmlList = fnEmailList(element, params.email))) {eleUl.css(visibility, "visible").html(htmlList);} else if (target != eleUl.get(0) && target.parentNode != eleUl.get(0)) {eleUl.css(visibility, "hidden");} }, "keydown": function(e) {var eleLi = eleUl.find("li");if (eleUl.css(visibility) === "visible") {switch (e.keyCode) { case key.up: { element.indexSelected--; if (element.indexSelected = eleLi.length) { element.indexSelected = 0; } e.preventDefault && e.preventDefault(); break; } case key.enter: {e.preventDefault();eleLi.get(element.indexSelected) && $(element).val(eleLi.eq(element.indexSelected).html()); eleUl.css("visibility", "hidden"); break; } case key.tab: case key.esc: { eleUl.css("visibility", "hidden"); break; }}if (element.indexSelected !== -1) { eleUl.html(fnEmailList(element));}} } }); }); };})(jQuery);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。