2010-08-22 4 views
1

J'ai un formulaire sur lequel un utilisateur peut cliquer sur un bouton pour ajouter un autre ensemble d'entrées. Donc j'utilise eName [] par exemple. J'espérais utiliser jquery pour ce faire, et j'ai pensé que vivre() serait un excellent moyen de parcourir tous les éléments créés par l'utilisateur pour voir s'ils sont vides mais je ne suis pas sûr de pouvoir le faire sans être lié à un événement . Donc, je pense quelque chose comme:Validation côté client sur les éléments dynamiques

$(form).submit(funciton()({ 
    //other validation here 
    $(".eName").live(bindToWhat?, function() { 
    //loop and check val(); 
    }); 
}); 

Ou peut-être que c'est la mauvaise approche.

J'espère que c'est assez d'informations, si ce n'est pas connu. Merci!!

Répondre

1

Ne pas lier aux entrées, faites ceci:

$(form).submit(funciton()({ 
    $(".eName").each(function() { 
    if ($(this).val() === ''){ 
     alert('This field can not be empty'); 
     $(this).focus(); 
    } 
    }); 
}); 

eName est censé être la classe attribuée aux champs.

+0

chaque() ne récupérera pas les nouveaux éléments créés par l'utilisateur? Je pensais que chaque() était seulement au courant des éléments qui ont été créés onload. – lardlad

+0

each() va itérer chaque élément de la collection au moment de l'appel de chacun. Cela inclut les éléments créés dynamiquement. La confusion vient du fait que les nouveaux éléments créés sans un événement donné ne le déclencheront pas à moins qu'il ne soit ajouté après _ou_ il y a un événement .live qui regarde cet élément (par un sélecteur) –

Questions connexes