增加邮箱自动提示
parent
9f2e55b24c
commit
dad80bc1fa
@ -0,0 +1 @@
|
||||
(function($){$.fn.mailAutoComplete=function(options){var defaults={className:"emailist",email:["qq.com","gmail.com","126.com","163.com","hotmail.com","yahoo.com","yahoo.com.cn","live.com","sohu.com","sina.com"],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};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+'<li'+(input.indexSelected===index?' class="on"':'')+'>'+arrValue[0]+"@"+email+'</li>'});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=$('<ul></ul>').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()}});$(this).before(eleUl);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<0){element.indexSelected=-1+eleLi.length}e.preventDefault&&e.preventDefault();break}case key.down:{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);
|
Loading…
Reference in New Issue