


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 PM1. Un fichier js est requis : 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; //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 < ; 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 :
Le code est le suivant :
<style type="text/css">
Copier le code
Le le code est le suivant :
<p>Affichage de la classe personnalisée : <input type="text" id="customTest" size="28" /></p> >
autoClass : false,
textHint : true, //Le texte de l'invite est automatiquement masqué
hintText : "Veuillez saisir votre adresse e-mail"
});
})
</script>

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

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 Site officiel Sesame Open Door application Dernier site Web entrant

portail d'enregistrement de la version Web de Gateio Exchange

Obtenez l'inscription OUYI en 3 minutes

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

portail d'enregistrement officiel de Gate.io Exchange
