2009-09-19 4 views
0

J'ai une zone de texte dans laquelle les utilisateurs entrent des adresses e-mail en les séparant par des virgules. Je suis à la recherche d'un plugin jquery ou d'un extrait qui effectuera une validation en direct sur ce champ afin que les utilisateurs doivent entrer correctement.jQuery validation multi-email/formage

Des idées?

Merci

Répondre

0

Je fini par écrire ma propre fonction pour le faire. Il prend la chaîne du champ en tant qu'entrée et construit un tableau d'adresses de messagerie, validant chacune pour le format approprié.

$.fn.emailArrayFromCSL = function(csl){ 
    var valid = true; 
    var result,value; 
    csl = csl.replace(/;/g,","); 
    csl = csl.replace(/ /g,","); 
    csl = csl.replace(/,,/g,","); 
    csl = csl.replace(/,,/g,","); 
    email_array = csl.split(","); 
    $.each(email_array,function(i,value){ 
    result = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value); 
    valid = result && valid; 
    }); 

    if(!valid){ 
    return false; 
    }else{ 
    return email_array; 
    } 
} 

Actuellement, il ne accepte le format comme - First Last

Quelqu'un peut-il me aider à changer cette fonction pour vérifier le format (e-mail uniquement ou nom + email) et lorsque celui-ci , tirez l'e-mail de ce format et l'ajouter à la matrice?

0

Ceci est une tâche assez spécialisée; il est probable que vous devrez rouler votre propre code sur celui-ci.

1

Vous pouvez commencer par jquery/Plugin/Validation et créer un plugin validateur personnalisé qui fait quelque chose le long des lignes de:

var values = value.split(/\s*,\s*/); 
for (var i=0; i<values.length;i++) { 
    var testing = values[i]; 
    // test using the builtin e-mail validator 
}