Bonjour !
Je continue avec mes questions de neuneus...Aujourd'hui, cloner une ligne d'un formulaire !
J'explique : sur mon site de cuisine, on peut proposer des recettes. Il y a des champs à remplir, genre "accompagnements", "ingredients", "étapes", etc. Vu qu'il n'y a pas de standard en recette de cuisine, je pensais mettre un bouton + à la fin de chaque ligne de formulaire, permettant de cloner celle-ci et de l'ajouter à la suite.
Le modèle est le suivant pour le HTML:
Et pour le jQuery ça donne ceci :
Donc ça marche très bien sur Firefox. Mais, j'ai quelques questions :
- d'un point de vue accessibilité, ne vaudrait-il pas mieux créer X lignes de formulaires en html et masquer toutes sauf la première en jQuery, afin de permettre à ceux qui n'ont pas javascript de remplir quand même le formulaire ?
- IE ne semble pas prendre en compte le live() : je peux cliquer une fois sur les boutons d'ajouts. Au-delà, il ne fait plus rien.
- IE et Opera ne savent pas compter alors que Flock, Chrome et FF y arrivent : un de ces champs de formulaires est dans une liste ordonnée (les étapes de préparation de la recette). Le clonage permet de rajouter des éléments à cette liste. 3 navigateurs numérotent correctement les nouvelles lignes. IE et Opera, donc, restent à 1.
- Y a-t-il d'autres méthodes pour réaliser ce que je veux ?
Merci pour vos conseils.
Modifié par Mendoza (10 Feb 2011 - 11:20)
Je continue avec mes questions de neuneus...Aujourd'hui, cloner une ligne d'un formulaire !
J'explique : sur mon site de cuisine, on peut proposer des recettes. Il y a des champs à remplir, genre "accompagnements", "ingredients", "étapes", etc. Vu qu'il n'y a pas de standard en recette de cuisine, je pensais mettre un bouton + à la fin de chaque ligne de formulaire, permettant de cloner celle-ci et de l'ajouter à la suite.
Le modèle est le suivant pour le HTML:
<div id="conteneur">
<div id="element_a_cloner">Ligne de formulaire<span class="bouton_ajout">cliquez ici pour ajouter un élément</span></div>
</div>
Et pour le jQuery ça donne ceci :
$(".bouton_ajout").live("click",function(){
$("#element_a_cloner").clone().appendTo("#conteneur");
$(this).addClass("hidden");
});
Donc ça marche très bien sur Firefox. Mais, j'ai quelques questions :
- d'un point de vue accessibilité, ne vaudrait-il pas mieux créer X lignes de formulaires en html et masquer toutes sauf la première en jQuery, afin de permettre à ceux qui n'ont pas javascript de remplir quand même le formulaire ?
- IE ne semble pas prendre en compte le live() : je peux cliquer une fois sur les boutons d'ajouts. Au-delà, il ne fait plus rien.
- IE et Opera ne savent pas compter alors que Flock, Chrome et FF y arrivent : un de ces champs de formulaires est dans une liste ordonnée (les étapes de préparation de la recette). Le clonage permet de rajouter des éléments à cette liste. 3 navigateurs numérotent correctement les nouvelles lignes. IE et Opera, donc, restent à 1.
- Y a-t-il d'autres méthodes pour réaliser ce que je veux ?
Merci pour vos conseils.
Modifié par Mendoza (10 Feb 2011 - 11:20)