Bonsoir,
Dans un formulaire, j'ai un bouton "supprimer" qui, une fois cliqué, est remplacé par deux boutons de confirmation "oui" et "non". Pour l'instant, chaque étape est gérée en PHP. Je voudrais y ajouter un peu de JavaScript via jQuery pour éviter de recharger la page à chaque clic en gérant mon échange de boutons.
Ce que je cherche à faire :
- un clic sur le bouton "supprimer" (id="bt_delete") le remplace par les boutons "oui" (id="bt_delete_yes") et "non" (id="bt_delete_no")
- un clic sur le bouton "non" remplace les deux boutons par celui d'origine
J'ai le code jQuery suivant :
Pas de problème lorsque je clique sur le bouton "supprimer" : mes deux nouveaux boutons le remplacent via JavaScript. Par contre, si je clique ensuite sur le bouton "non", JavaScript ne voit pas l'événement.
Si je comprends bien avec les vagues connaissances en JS que j'ai, c'est parce qu'au chargement du script, le bouton #bt_delete_no n'existe pas (puisqu'il est généré par une fonction du script) et il ne peut donc pas y avoir d'observation d'événement dessus.
Si c'est bien le problème, est-ce qu'il y a un moyen simple de le contourner ?
Modifié par terzag (24 Sep 2008 - 10:37)
Dans un formulaire, j'ai un bouton "supprimer" qui, une fois cliqué, est remplacé par deux boutons de confirmation "oui" et "non". Pour l'instant, chaque étape est gérée en PHP. Je voudrais y ajouter un peu de JavaScript via jQuery pour éviter de recharger la page à chaque clic en gérant mon échange de boutons.
Ce que je cherche à faire :
- un clic sur le bouton "supprimer" (id="bt_delete") le remplace par les boutons "oui" (id="bt_delete_yes") et "non" (id="bt_delete_no")
- un clic sur le bouton "non" remplace les deux boutons par celui d'origine
J'ai le code jQuery suivant :
$('#bt_delete').click(
function(){
$(this).replaceWith('<input type="submit" id="bt_delete_yes" name="delete:5" value="Oui"/><input type="submit" id="bt_delete_no" name="cancel" value="Non"/>');
});
$('#bt_delete_no').click(
function(){
$('#bt_delete_yes').remove;
$(this).replaceWith('<input type="submit" id="bt_delete" name="bt_delete_confirm" value="Supprimer"/>');
});
Pas de problème lorsque je clique sur le bouton "supprimer" : mes deux nouveaux boutons le remplacent via JavaScript. Par contre, si je clique ensuite sur le bouton "non", JavaScript ne voit pas l'événement.
Si je comprends bien avec les vagues connaissances en JS que j'ai, c'est parce qu'au chargement du script, le bouton #bt_delete_no n'existe pas (puisqu'il est généré par une fonction du script) et il ne peut donc pas y avoir d'observation d'événement dessus.
Si c'est bien le problème, est-ce qu'il y a un moyen simple de le contourner ?
Modifié par terzag (24 Sep 2008 - 10:37)