Maison interface Web js tutoriel Exemple de code de sélection de remplissage automatique dans la liste déroulante des e-mails avec des compétences Picture_Javascript

Exemple de code de sélection de remplissage automatique dans la liste déroulante des e-mails avec des compétences Picture_Javascript

May 16, 2016 pm 04:53 PM
dérouler 自动填充 邮箱

1. Un fichier js est requis : jquery.mailAutoComplete-3.1.js

Copier le code Le code est le suivant :

(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; //Objet de boîte de liste
that.focus(function(){
//Niveau de la balise parent
$ (this).css("color", fc).parent().css("z-index", z);
//Afficher et masquer le texte de l'indice
if(hint && text){
var focus_v = $.trim($(this).val());
if(focus_v === text){
$(this).val("");
}
}
//Événements de clavier
$(this).keyup(function(e){
s = v = $.trim($(this).val());
if ( /@/.test(v)){
s = v.replace(/@.*/, "");
}
if(v.length > 0){
/ /Si la clé est haute ou basse
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){
//Entrée
if(index > -1 && index &lt ; newArr.length){
//S'il existe actuellement une liste active
$(this).val($("#mailList_" index).text()
}
} else {
if(/@/.test(v)){
index = -1;
//Obtenir la valeur après @
//s = v.replace(/@.* / , "");
//Créer un nouveau tableau correspondant
var site = v.replace(/.*@/, ""); ){
var reg = new RegExp(site);
if(reg.test(n)){
return n
}
}); 🎜> newArr = mailArr;
}
}
x.html($.createHtml(s, newArr, index)).css("left", 0
if(e.keyCode); == = 13){
//Entrer
if(index > -1 && index < newArr.length){
//S'il existe actuellement une liste d'activation
x.css( "gauche", "-6000px");
}
}
}else{
x.css("gauche", "-6000px"); .blur( function(){
if(indice && texte){
var flou_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");

}
//Pause sur l'événement d'élément de liste
/ /Mouse over
$(".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(){
that.val( liveValue);
});
});

})(jQuery);
2.jq est bien sûr indispensable, voici Omettre

Testons-le ci-dessous

3. Feuille de style :



Copier le code


Le code est le suivant :


<style type="text/css">
.out_box{border:1px solid #ccc; Tahoma;} .list_box{border-bottom:1px solid #eee; padding:0 5px; curseur:pointeur;} .focus_box{background:#f0f3f9;} .mark_box{color:#c00 ;} </style>
4. Code de test




Copier le code


Le le code est le suivant :


<p>Affichage de la classe personnalisée : <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", //Style de boîte externelistClass : "list_box", //Style de liste par défaut
focusClass : "focus_box", //Style de sélection de liste
markCalss : "mark_box" , //Style de surbrillance
autoClass : false,
textHint : true, //Le texte de l'invite est automatiquement masqué
hintText : "Veuillez saisir votre adresse e-mail"
});
})
</script>



Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Musée à deux points: toutes les expositions et où les trouver
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Musée à deux points: toutes les expositions et où les trouver
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Tutoriel de connexion à l'entrée du site officiel Deepseek Tutoriel de connexion à l'entrée du site officiel Deepseek Feb 19, 2025 pm 04:24 PM

Tutoriel de connexion à l'entrée du site officiel Deepseek

Sesame Open Door Exchange Page d'enregistrement de page Enregistrement Gate Trading App The Registration Site Web Sesame Open Door Exchange Page d'enregistrement de page Enregistrement Gate Trading App The Registration Site Web Feb 28, 2025 am 11:06 AM

Sesame Open Door Exchange Page d'enregistrement de page Enregistrement Gate Trading App The Registration Site Web

Sesame Open Door Site officiel Sesame Open Door application Dernier site Web entrant Sesame Open Door Site officiel Sesame Open Door application Dernier site Web entrant Feb 28, 2025 am 11:18 AM

Sesame Open Door Site officiel Sesame Open Door application Dernier site Web entrant

portail d'enregistrement de la version Web de Gateio Exchange portail d'enregistrement de la version Web de Gateio Exchange Feb 20, 2025 pm 04:12 PM

portail d'enregistrement de la version Web de Gateio Exchange

Obtenez l'inscription OUYI en 3 minutes Obtenez l'inscription OUYI en 3 minutes Feb 19, 2025 pm 06:54 PM

Obtenez l'inscription OUYI en 3 minutes

GATE OFFICIEL SITEET Adresse de connexion Gate Exchange Connexion du site officiel GATE OFFICIEL SITEET Adresse de connexion Gate Exchange Connexion du site officiel Feb 19, 2025 pm 03:09 PM

GATE OFFICIEL SITEET Adresse de connexion Gate Exchange Connexion du site officiel

portail d'enregistrement officiel de Gate.io Exchange portail d'enregistrement officiel de Gate.io Exchange Feb 20, 2025 pm 04:27 PM

portail d'enregistrement officiel de Gate.io Exchange

Plateforme de trading GATEIO Plateforme de trading GATEIO Feb 21, 2025 pm 02:42 PM

Plateforme de trading GATEIO

See all articles