2010-06-22 4 views
8

Je tente de soumettre un formulaire avec une zone de texte tinyMCE. Im soumettre le formulaire via javascript, et pour ce faire, je sais que vous devez appeler tinyMCE.triggerSave pour copier le contenu de l'éditeur à la zone de texte cachée qu'il remplace. Pour la vie de moi je ne peux pas obtenir tinyMCE.triggerSave pour faire n'importe quoi. Je sais ce n'est pas parce que je cours la commande des outils de débogage de safari et de firefox et rien dans les changements DOM.tinyMCE triggerSave ne fonctionne pas

Autre que ce problème tinyMCE semble fonctionner correctement, la forme se présente et fonctionne. Je ne peux pas le soumettre.

EDIT: même si j'utilise un bouton d'envoi de formulaire standard, il ne capte pas le contenu.

Répondre

4

J'ai inclus deux fois les fichiers tinyMCE js. J'avais

= include_tiny_mce_if_needed 

dans mon modèle d'application, et j'avais

- content_for(:head, include_tiny_mce_if_needed) 

dans mon dossier de vue ... BAD

m'a fait des heures de frustration.

+1

C'était aussi mon cas. J'étais désespéré. Merci! –

-3

Il se peut que vous n'ayez pas inclus deux fois les fichiers js. J'ai juste rencontré un problème similaire et en ai fait un benchtest rapide. Environ 1 fois dans 100 fois triggerSave() a échoué en silence ... une fois qu'il a échoué, vous avez terminé. Il ne fonctionnera pas à nouveau jusqu'à ce que vous rechargiez/relancez un tinymce.init complet()

Morale de l'histoire, ne faites pas confiance à triggerSave()! Tôt ou tard, vous finirez par perdre des données critiques.

+3

Alors, que devrions-nous utiliser alors? –

7

Vous pouvez également rencontrer ce problème si vous initialisez deux fois le même éditeur en utilisant tinymce.execCommand ('mceAddControl', true, id);

Aucune erreur ne sera affichée mais la fonction triggerSave échouera silencieusement.

+0

Cela l'a fait pour moi. Merci beaucoup! – Olaf