2013-01-24 3 views
1

J'ai donc une liste d'utilisateurs enregistrés sur mon site dans 1 colonne, dans la 2ème est leur adresse e-mail avec une case à cocher à côté d'elle. Sur cette page, un utilisateur peut cocher la case (ou les multiples) et cliquer sur un bouton de soumission. Une fois qu'ils le font, il va générer une liste des e-mails séparés par un point-virgule.Erreur jQuery - Génération indéfinie

Mon problème est après avoir réussi soumettre les listes génère, mais la première adresse e-mail a écrit "non défini" juste à côté de lui .. donc au lieu de dire "[email protected]; [email protected]" il lit "[email protected]; [email protected]".

Voici mon jQuery:

jQuery(document).ready(function() { 
jQuery('#memberSubmit').click(function() { 
    var emailList; 
    jQuery('.email-members input:checked').each(function() { 
     var $this = jQuery(this); 
     emailList += $this.next('a').html() + "; "; 
    }); 
    jQuery('.email-message').hide(); 
    jQuery('.email-members').hide(); 
    jQuery('.email-checks').hide(); 
    jQuery('#memberSubmit').hide(); 
    jQuery('.email-results a').attr('href', "mailto: " + emailList).fadeIn(2000); 
    jQuery('.email-results .email-list p').html(emailList).fadeIn(2000); 
    jQuery('.email-results h2').fadeIn(2000); 
    jQuery('.email-results p').fadeIn(2000); 
    jQuery('.email-list h2').fadeIn(2000); 
    //console.info('Emails: ' + emailList); 
}); 
}); 

Je pense que mon erreur est sur la ligne: emailList += $this.next('a').html() + "; "; Mais je ne suis pas sûr ... des idées?

Merci!

+0

Pouvez-vous fournir un court exemple HTML de votre configuration? – Matt

Répondre

3

Initialisez d'abord la variable emailList, ce qui signifie qu'elle ne commence pas à undefined lorsque vous effectuez votre première visite. Par coïncidence, lorsque vous appelez += pour la première fois, il est en train de convertir undefined en une chaîne, ce qui signifie que votre chaîne commence toujours par cela.

var emailList = ""; 
+0

Darn vous m'a battu par quelques secondes: P – Doorknob

+1

@Doorknob Hehe j'ai remarqué, désolé mec! – mattytommo

+0

A travaillé comme un charme! Merci à vous deux! – Danny

0

Essayez de remplacer la déclaration de emailList avec ce code:

var emailList = ""; 

C'est parce que emailList commence comme undefined si vous n'initialisez pas. Par conséquent undefined + "this is a test" se révélerait comme undefinedthis is a test.

+0

Mentionnez-moi dans cette réponse demain et je vous +1, j'ai atteint le plafond des votes pour aujourd'hui! – mattytommo

+0

@mattytommo Non, ça va: P – Doorknob

+0

Je vais le faire quand même: P – mattytommo