2017-07-12 2 views
4

J'ai un problème avec TinyMCE. Dans mon application basée sur CakePHP v3 j'ai un formulaire pour ajouter des tâches de fidélité. Il y a un champ qui utilise tinymce pour décrire la tâche.TinyMCE requis empêcher d'envoyer le formulaire

Donc, le problème est quand je remplis le formulaire avec des données et que je clique sur le bouton "soumettre" rien ne se passe. De plus, il y a aussi la forme pour éditer les tâches et ça fonctionne parfaitement (c'est exactement pareil). Aucun JS personnalisé n'est ajouté pour les formulaires problématiques.

Je sais que TinyMCE avec require sur textarea cause le problème, parce que quand je le désactive il fonctionne parfaitement.

du code:
initialisation TinyMCE:

tinymce.init({ 
    selector: 'textarea.tinymce', 
    height: 500, 
    plugins: [ 
     "advlist autolink link image lists charmap preview hr anchor image", 
     "wordcount visualblocks visualchars fullscreen insertdatetime nonbreaking", 
     "table paste" 
    ], 
    toolbar1: "undo redo cut copy paste | bold italic underline strikethrough subscript superscript | alignleft aligncenter alignright alignjustify | table", 
    toolbar2: "formatselect | outdent indent | bullist numlist | blockquote link unlink charmap hr image | preview", 
    menubar: false, 
    content_css: [ 
     '//www.tinymce.com/css/codepen.min.css' 
    ] 
}); 

(formulaire enlevé quelques éléments):

<?= $this->Form->create(null, ['enctype'=>'multipart/form-data']); ?> 
<div class="col-xs-12"> 
    <div class="form-group"> 
     <label>Tytuł</label> 
     <input type="text" name="title" class="form-control" required="required"/> 
    </div> 
</div> 
//additional elements 
<div class="col-xs-12"> 
    <div class="form-group"> 
     <label>Treść zadania</label> 
     <textarea name="task" class="form-control tinymce" required="required"></textarea> 
    </div> 
    <input type="submit" class="" value="Dodaj"/> 
</div> 
<?= $this->Form->end(); ?> 

version utilisée de TinyMCE: 4.6.4 (nouveau)

+0

Votre textarea ne contient rien lorsque vous cliquez sur soumettre et donc les coups de pied de validation du navigateur. Je pense que dans ce cas, vous auriez besoin de validation d'une coutume qui se passe pour la fenêtre de l'éditeur TinyMCE. https://stackoverflow.com/questions/16450499/form-with-tinymce-textarea-having-html5-required-attribute-cannot-submit – Morpheus

Répondre

0

Votre modification formulaire peut être le même que votre formulaire d'ajout, mais en cas d'édition, vous aurez des données dans les champs obligatoires, donc l'option required ne causera pas de problème blems. En plus, il y a une situation opposée - vous avez un champ vide, et la validation échoue. Pour résoudre ce problème, vous pouvez supprimer required="required" de l'entrée tinymce et effectuer une validation supplémentaire - soit dans js du côté client, soit dans la classe de table cakephp sur le serveur.

2

Merci pour les réponses rapides, mais j'ai trouvé réponse par moi-même sur tinymce support forum.

Pour ceux qui auront ce problème: ajoutez simplement le code ci-dessous à votre initialisation tinyMCE.

setup: function (editor) { 
    editor.on('change', function (e) { 
     editor.save(); 
    }); 
}