JS实现在输入框内输入@时,邮箱账号自动补全

<!DOCTYPE HTML>

<html lang="en">

<head>

<meta charset="utf-8"/>

<title>邮箱自动补全</title>

<style type="text/css">

.wrap{width:200px;margin:0 auto;}

h1{font-size:36px;text-align:center;line-height:60px;}

p{font-size:20px;text-align:center;line-height:60px;}

.inp{width:190px;border:1px solid #ccc;border-radius:5px;height:30px;line-height:30px;padding:5px;}

#AutoComplete{background:#fff;border:1px solid #4190db;display:none;width:200px;}

#AutoComplete ul{list-style-type:none;margin:0;padding:0;}

#AutoComplete li{color:#333;cursor:pointer;font:12px/22px \5b8b\4f53;text-indent:5px;}

#AutoComplete .hover{background:#6eb6fe;color:#fff;}

</style>

</head>

<body>

<h1>邮箱自动补全 + 上下翻动</h1>

<p>当在输入框内输入 @ 时,自动显示各个邮箱的下拉列表。</p>

<div class="wrap">

<form action="result.php" method="post">

<input type="text" name="email" id="email" class="inp" autocomplete="off"/><br/><br/>

<input type="text" name="other" class="inp" autocomplete="off"/><br/><br/>

<input type="submit" value="提交表单" id="submit"/>

</form>

</div>

<script type="text/javascript" src="jquery.min.js"></script>

<script type="text/javascript">

jQuery.AutoComplete = function(selector){

var elt = $(selector);

var autoComplete,autoLi;

var strHtml = [];

strHtml.push(‘<div class="AutoComplete" id="AutoComplete">‘);

strHtml.push(‘ <ul class="AutoComplete_ul">‘);

strHtml.push(‘ <li class="AutoComplete_title">请选择邮箱后缀</li>‘);

strHtml.push(‘ <li hz="@qq.com"></li>‘);

strHtml.push(‘ <li hz="@163.com"></li>‘);

strHtml.push(‘ <li hz="@126.com"></li>‘);

strHtml.push(‘ <li hz="@sohu.com"></li>‘);

strHtml.push(‘ <li hz="@sina.com"></li>‘);

strHtml.push(‘ </ul>‘);

strHtml.push(‘</div>‘);

$(‘body‘).append(strHtml.join(‘‘));

autoComplete = $(‘#AutoComplete‘);

autoComplete.data(‘elt‘,elt);

autoLi = autoComplete.find(‘li:not(.AutoComplete_title)‘);

autoLi.mouseover(function(){

$(this).siblings().filter(‘.hover‘).removeClass(‘hover‘);

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

}).mouseout(function(){

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

}).mousedown(function(){

autoComplete.data(‘elt‘).val($(this).text()).change();

autoComplete.hide();

});

//用户名补全+翻动

elt.keyup(function(e){

if(/13|38|40|116/.test(e.keyCode) || this.value == ‘‘){

return false;

}

var username = this.value;

if(username.indexOf(‘@‘) == -1){

autoComplete.hide();

return false;

}

autoLi.each(function(){

this.innerHTML = username.replace(/\@+.*/,‘‘) + $(this).attr(‘hz‘);

if(this.innerHTML.indexOf(username) >= 0){

$(this).show();

}else{

$(this).hide();

}

}).filter(‘.hover‘).removeClass(‘hover‘);

autoComplete.show().css({

left: $(this).offset().left,

top: $(this).offset().top + $(this).outerHeight(true) - 1,

position: ‘absolute‘,

zIndex: ‘99999‘

});

if(autoLi.filter(‘:visible‘).length == 0){

autoComplete.hide();

}else{

autoLi.filter(‘:visible‘).eq(0).addClass(‘hover‘);

}

}).keydown(function(e){

if(e.keyCode == 38){ //上

autoLi.filter(‘.hover‘).prev().not(‘.AutoComplete_title‘).addClass(‘hover‘).next().removeClass(‘hover‘);

}else if(e.keyCode == 40){ //下

autoLi.filter(‘.hover‘).next().addClass(‘hover‘).prev().removeClass(‘hover‘);

}else if(e.keyCode == 13){ //Enter

autoLi.filter(‘.hover‘).mousedown();

e.preventDefault(); //如有表单,阻止表单提交

}

}).focus(function(){

autoComplete.data(‘elt‘,$(this));

}).blur(function(){

autoComplete.hide();

});

}

$(function(){

$.AutoComplete(‘#email‘);

});

</script>

</body>

</html>

时间: 2024-10-10 06:41:06

JS实现在输入框内输入@时,邮箱账号自动补全的相关文章

iOS 身份证最后一位是X,输入17位后自动补全X(转)

非原创,转载自http://blog.csdn.net/l2i2j2/article/details/51542028如果身份证最后一位是X,输入17位后自动补全X// textField代理方法 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { // string.length为0,表明没有输

AutoFileName 使用src ,href 引入文件时,会自动补全路径的插件

AutoFileName功能:快捷输入文件名 简介:自动完成文件名的输入,如图片选取 使用:输入”/”即可看到相对于本项目文件夹的其他文件 只要输入 src="" 输入双引号就立马出来当前目录的所有的目录地址 ,超级好用 原文地址:https://www.cnblogs.com/Knowledge-is-infinite/p/11387353.html

仿知乎登陆邮箱自动补全

项目要求: 登陆界面输入邮箱,自动匹配常用邮箱并自动补全后缀. 比如邮箱为[email protected],当我输入[email protected]时,输入框自动补全后面的q.com且颜色为灰浅色,输入框失去焦点时,补全q.com颜色变为黑色,和前面[email protected]的颜色一致. 解决: 1.通过查看知乎的布局,发现没有用自定义控件,仅仅用了普通的EditText. 2.查看EditTex(继承TextView)t的API,最终想到了用下面这个方法 void android.

javascript 邮箱输入自动补全插件(转)

<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>inputSuggest_0.1.js</title> <style type="text/css"> body{margin:0;padding:0;} input{width:200px;} .suggest-container{border:1px solid

知问前端——邮箱自动补全

本节课,我们通过自动补全source属性的function回调函数,来动态的设置我们的数据源,以达到可以实现邮箱补全功能. 数据源function 自动补全UI的source不但可以是数组,也可以是function回调函数,提供了自带的两个参数设置动态的数据源. $('#email').autocomplete({ source : function (request, response) { //获取用户输入的内容 alert(request.term); //可以获取你输入的值 //绑定数据

自动补全 多输入, 适合新闻标签

2015年5月12日 20:16:48 星期二 js+css 1 <script type="text/javascript"> 2 var ac_domain = 'http://'+document.domain+'/'; 3 initAutoComplete(); 4 function initAutoComplete() 5 { 6 var ac_input = document.getElementById('auto_complete_input'); 7 if

输入框自动补全功能

在输入框输入信息后,自动提示补全.我选择用typeahead.js,后来发现,原来这个库的相关学习资料很少,搞的稍微有点久,才弄明白点...本文实属原创,如有错误,敬请指教! 简介: 官网:http://twitter.github.io/typeahead.jsgithub: https://github.com/twitter/typeahead.js使用文档:https://www.awesomes.cn/repo/twitter/typeahead-js 在查资料的过程中,不难发现,ty

jquery UI邮箱自动补全

<1> 自动补全(autocomplete),是一个可以减少用户输入完整信息的UI 工具.一般在输入邮箱.搜索关键字等,然后提取出相应完整字符串供用户选择. <html> <head> <title></title> <script src="js/jquery-1.11.2.js"></script> <script src="js/jquery-ui.js"><

Framework7新版学习笔记之 自动补全输入框(AutoComplete)

一:自动补全输入框 我们可以定义一种具有自动补全功能的输入框,预先设定一些可选值作为自动补全内容.当用户输入可选值的部分内容时,就会在下面自动列出匹配的选项,点击即可自动填充对应的选项. 二:定义自动补全输入框 <div class="item-input-wrap"> <input id="autocomplete-dropdown" type="text" placeholder="提示文本"> &