웹 프론트엔드 JS 튜토리얼 picture_javascript 기술이 포함된 이메일 드롭다운 자동 완성 선택 샘플 코드

picture_javascript 기술이 포함된 이메일 드롭다운 자동 완성 선택 샘플 코드

May 16, 2016 pm 04:53 PM
쓰러지 다 자동완성 우편

1. js 파일이 필요합니다: jquery.mailAutoComplete-3.1.js

코드 복사 코드는 다음과 같습니다.

(function($){
$.fn.mailAutoComplete = function(options){
var defaults = {
boxClass: "mailListBox", //外部box样式
listClass: "mailListDefault", //默认的列表样式
focusClass: "mailListFocus", //列表选样式中
markCalss: "mailListHlignt", //高亮样式
zIndex: 1,
autoClass: true, //是否使用插件自带class样式
mailArr: ["qq.com","gmail.com","126.com","163.com","hotmail.com","yahoo.com","yahoo.com.cn","live.com","sohu.com","sina.com"], //邮件数组
textHint: false, //文字提示的自动显示与隐藏
hintText: "",
focusColor: "#333",
blurColor: "#999"
};
var settings = $.extend({}, defaults, options || {});

//页面装载CSS样式
if(settings.autoClass && $("#mailListAppendCss").size() === 0){
$('<style id="mailListAppendCss" type="text/css">.mailListBox{border:1px solid #369; background:#fff; font:12px/20px Arial;}.mailListDefault{padding:0 5px;cursor:pointer;white-space:nowrap;}.mailListFocus{padding:0 5px;cursor:pointer;white-space:nowrap;background:#369;color:white;}.mailListHlignt{color:red;}.mailListFocus .mailListHlignt{color:#fff;}</style>').appendTo($("head"));
}
var cb = settings.boxClass, cl = settings.listClass, cf = settings.focusClass, cm = settings.markCalss; //插件的class变量
var z = settings.zIndex, newArr = mailArr = settings.mailArr, hint = settings.textHint, text = settings.hintText, fc = settings.focusColor, bc = settings.blurColor;
//创建邮件内部列表内容
$.createHtml = function(str, arr, cur){
var mailHtml = "";
if($.isArray(arr)){
$.each(arr, function(i, n){
if(i === cur){
mailHtml += '<div class="mailHover '+cf+'" id="mailList_'+i+'"><span class="'+cm+'">'+str+'</span>@'+arr[i]+'</div>';
}else{
mailHtml += '<div class="mailHover '+cl+'" id="mailList_'+i+'"><span class="'+cm+'">'+str+'</span>@'+arr[i]+'</div>';
}
});
}
return mailHtml;
};
//一些全局变量
var index = -1, s;
$(this).each(function(){
var that = $(this), i = $(".justForJs").size();
if(i > 0){ //只绑定一个文本框
return;
}
var w = that.outerWidth(), h = that.outerHeight(); //获取当前对象(即文本框)的宽高
//样式的初始化
that.wrap('<span style="display:inline-block;position:relative;"></span>')
.before('<div id="mailListBox_'+i+'" class="justForJs '+cb+'" style="min-width:'+w+'px;_width:'+w+'px;position:absolute;left:-6000px;top:'+h+'px;z-index:'+z+';"></div>');
var x = $("#mailListBox_" i), liveValue; //목록 상자 객체
that.focus(function(){
//상위 태그 수준
$ (this).css("color", fc).parent().css("z-index", z)
//힌트 텍스트 표시 및 숨기기
if(hint && text){
var focus_v = $.trim($(this).val());
if(focus_v === text){
$(this).val("")
}
//키보드 이벤트
$(this).keyup(function(e){
s = v = $.trim($(this).val());
if ( /@/.test(v)){
s = v.replace(/@.*/, "")
}
if(v.length > 0){
/ /키가 위쪽 또는 아래쪽 키인 경우
if(e.keyCode === 38){
//Up
if(index <= 0){
index = newArr.length ;
}
index--;
}else if(e.keyCode === 40){
//Down
if(index >= newArr.length - 1){
index = -1;
}
index ;
}else if(e.keyCode === 13){
//Enter
if(index > -1 && index < newArr.length){
//현재 활성 목록이 있는 경우
$(this).val($("#mailList_" index).text())
}
}else {
if(/@/.test(v)){
index = -1;
//@
뒤의 값 가져오기//s = v.replace(/@ .*/ , "");
//새 일치 배열 만들기
var site = v.replace(/.*@/, "")
newArr = $.map(mailArr, function (n){
var reg = new RegExp(site);
if(reg.test(n)){
return n;
}
}else {
newArr = mailArr;
}
}
x.html($.createHtml(s, newArr, index)).css("left", 0)
if(e .keyCode == = 13){
//Enter
if(index > -1 && index < newArr.length){
//현재 활성화 목록이 있는 경우
x. css("왼쪽" , "-6000px");
}
}
}else{
x.css("왼쪽", "-6000px")
}
}).blur( function(){
if(힌트 && 텍스트){
var Blur_v = $.trim($(this).val());
if(blur_v === "" ){
$(this).val(text);
}
}
$(this).css("color", bc).unbind("keyup").parent() .css("z -index",0);
x.css("left", "-6000px")

})
//목록 항목 위에 마우스 올리기 이벤트
//마우스 오버
$(".mailHover").live("mouseover", function(){
index = Number($(this).attr("id").split("_" )[1]) ;
liveValue = $("#mailList_" index).text()
x.children("." cf).removeClass(cf).addClass(cl); $(this).addClass(cf).removeClass(cl);
})

x.bind("mousedown", function(){
val(liveValue);
});

})(jQuery)

2.jq 라이브러리는 필수, 여기 생략

아래에서 테스트해보겠습니다

3. 스타일 시트:



코드 복사


코드는 다음과 같습니다. </style>


4. 테스트 코드




코드 복사


코드는 다음과 같습니다.
<p>사용자 정의 클래스 표시: <input type="text" id="customTest" size="28" /></p> ; <script src="js/jquery-1.6.min.js" type="text/javascript"></script><script src="js/jquery. mailAutoComplete-3.1.js" type="text /javascript"></script> <script type="text/javascript">
$(function() {
$(" #customTest").mailAutoComplete({
boxClass: "out_box", //외부 상자 스타일
listClass: "list_box", //기본 목록 스타일
focusClass: "focus_box", //목록 선택 스타일
markCalss: "mark_box" , //하이라이트 스타일
autoClass: false,
textHint: true, //프롬프트 텍스트는 자동으로 숨겨집니다
hintText: "이메일 주소를 입력하세요."
});
})
</script>



본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

DeepSeek 공식 웹 사이트 입력 로그인 자습서 DeepSeek 공식 웹 사이트 입력 로그인 자습서 Feb 19, 2025 pm 04:24 PM

DeepSeek 공식 웹 사이트 입력 로그인 자습서

참깨 오픈 도어 공식 웹 사이트 참깨 오픈 도어 앱 최신 입력 웹 사이트 참깨 오픈 도어 공식 웹 사이트 참깨 오픈 도어 앱 최신 입력 웹 사이트 Feb 28, 2025 am 11:18 AM

참깨 오픈 도어 공식 웹 사이트 참깨 오픈 도어 앱 최신 입력 웹 사이트

참깨 오픈 도어 교환 웹 페이지 등록 링크 게이트 트레이딩 앱 등록 웹 사이트 최신 참깨 오픈 도어 교환 웹 페이지 등록 링크 게이트 트레이딩 앱 등록 웹 사이트 최신 Feb 28, 2025 am 11:06 AM

참깨 오픈 도어 교환 웹 페이지 등록 링크 게이트 트레이딩 앱 등록 웹 사이트 최신

Gateio Exchange 웹 버전 등록 포털 Gateio Exchange 웹 버전 등록 포털 Feb 20, 2025 pm 04:12 PM

Gateio Exchange 웹 버전 등록 포털

3 분 안에 ouyi 등록을 받으십시오 3 분 안에 ouyi 등록을 받으십시오 Feb 19, 2025 pm 06:54 PM

3 분 안에 ouyi 등록을 받으십시오

게이트 공식 웹 사이트 로그인 주소 게이트 교환 공식 웹 사이트 로그인 게이트 공식 웹 사이트 로그인 주소 게이트 교환 공식 웹 사이트 로그인 Feb 19, 2025 pm 03:09 PM

게이트 공식 웹 사이트 로그인 주소 게이트 교환 공식 웹 사이트 로그인

Gate.io Exchange 공식 등록 포털 Gate.io Exchange 공식 등록 포털 Feb 20, 2025 pm 04:27 PM

Gate.io Exchange 공식 등록 포털

Gateio Trading Platform 공식 웹 사이트 로그인 Gateio Login Portal Gateio Trading Platform 공식 웹 사이트 로그인 Gateio Login Portal Feb 21, 2025 pm 02:42 PM

Gateio Trading Platform 공식 웹 사이트 로그인 Gateio Login Portal

See all articles