Bonjour,
comme dit dans le titre, j'aimerais récuperer le contenu d'une instance CKEDITOR, le contenu d'un textarea html.
Le problème est que mon formulaire est créé dynamiquement, et que les "name" sont donc "dynamique" aussi.
Pour utiliser les champs de mon formulaire, je voulais donc passer le nom de mon textarea par l'intermediaire d'une fonction qui prendrait en paramêtre le nom du champs.
Tout cela pour pouvoir au final envoyer le contenu en AJAX.
en gros:
En HTML :
Et dans le fichier Javascript :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <form> <textarea name="nomDuTxtarea1"> </textarea> <script type="text/javascript"> CKEDITOR.replace({nomDuTxtarea1}); </script> <input type="button" onClick="laFctQuiDonneLeNomDuTxtarea('nomDuTxtarea1')" /> <textarea name="nomDuTxtarea2"> </textarea> <script type="text/javascript"> CKEDITOR.replace({nomDuTxtarea2}); </script> <input type="button" onClick="laFctQuiDonneLeNomDuTxtarea('nomDuTxtarea2')" /> </form>
Comme marqué ci-dessus, les deux première ligne fonctionnent car j'appelle le nom de l'instance directement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 function laFctQuiDonneLeNomDuTxtarea(nom){ alert(CKEDITOR.instances.nomDuTxtarea1.getData()); //fonctionne alert(CKEDITOR.instances.nomDuTxtarea2.getData()); //fonctionne alert(CKEDITOR.instances.nom.getData()); //ne fonctionne pas }
Je crée mes textarea de façon dynamique, donc le nom change. Il m'est donc impossible de coder "en dur" le nom de l'instance. (comme fait ci-dessus)
La façon logique est d'utiliser le nom passé en paramêtre, mais comme mentionné, ça ne fonctionne pas.
Ma question est donc, comment faire pour que mon "nom" passé en paramètre soit reconnu ?
Merci de vos réponses,
Aurélien
PS : Il est aussi possible que je n'ai pas compris le fonctionnement de CKEditor, car si je fait un alert(document.getElementsByName(nom)) dans la fonction, je trouve bien le champ.
Partager