7
votes

Validation de jQuery de Textarea intégrée à ckeditor

J'ai un zone texte xxx

intégré à ckeditor xxx

et jQuery validate Plugin . Et le code est comme celui-ci xxx

Le code fonctionne tout simplement bien, mais lorsque je saisie mon textarea élément, je reçois toujours le message d'erreur jusqu'à ce que je puisse Cliquez deux fois sur là. I.E. Je dois soumettre ma page deux fois de manière à ce que je ne parole pas le message d'erreur même si textarea n'est pas vide.

N'y a-t-il pas un moyen de le valider correctement (sans avoir à cliquer deux fois).


0 commentaires

9 Réponses :


13
votes

Jetez un look ici

En gros, vous avez besoin Appeler xxx

avant d'exécuter la validation.

il suffit de remplacer Editor1 avec le nom de votre Texarea. < p> Appelez ensuite xxx

édition xxx


2 commentaires

Que dois-je exécuter ce code? Jeter un coup d'oeil à ma fonction de validate


Ne fonctionne pas pour moi. J'ai fait ce champ requis mais le formulaire soumet sans le remplir.



4
votes

Mettez ceci dans le bouton Soumettre MouseDown () Evénement:

$("#submit").mousedown(function(){
  for (var i in CKEDITOR.instances){
    CKEDITOR.instances[i].updateElement();
  }
});


0 commentaires

1
votes

Utilisez-le dans votre JavaScript dans lequel vous validez votre formulaire. Il mettra à jour votre CKEditor et assignera la valeur de CKEditor à votre Textarea auquel vous l'intégrez.

Il devrait fonctionner avant que le formulaire soit soumis: xxx


0 commentaires

4
votes

JQuery Validator validez uniquement les champs de saisie visibles mais CKeditor rend la Textarea cachée l'empêchant d'être validée.


2 commentaires

Est-ce vérifié? J'ai essayé toutes les suggestions ci-dessus et je n'ai toujours pas réussi à le faire fonctionner. Je sais que mon code de validation était bien parce que cela a fonctionné super sans ckeditor. J'ai écrit une validation manuelle. Je sais donc que le Texareas se mettait mis à jour lorsque j'ai appelé la méthode ckedititor.Instance.updateElement (). Mais lorsque je soumets mon formulaire avec JQuery Validate et CKeditor, la validation ne déclenche pas du tout.


Le Textarea que vous voyez dans CKeditor n'est pas le même textarea que vous définissez dans votre HTML. CKEditor le remplace avec son propre éditeur, caché ainsi la Texarea normale que vous définissez.



1
votes

Si vous l'attachez comme

function SubmitEvent(){
    var editor = $('#Detail').ckeditorGet();
    editor.updateElement();
    if($("#EventForm").valid()) {
        $('#EventForm').submit();
    }
}


0 commentaires

0
votes

Si vous utilisez Spry, c'est ce qui a fonctionné pour moi ... XXX


0 commentaires

1
votes

Je préférerais mettre à jour chaque instance sur l'événement BLUR, de sorte que vous n'avez pas besoin de changer quoi que ce soit sur votre fonction de soumission! :) xxx


0 commentaires

2
votes

J'ai combiné vos sugestions et faire cette petite triche qui fonctionne sans problème.

My Code: P>

    $("#submit-templateeditor").click(function(){
     CKEDITOR.instances.templateeditor.updateElement();
     $("#create-message-form-3").validate({
        rules: {
            templateeditor: "required"
        },
        messages: {
            templateeditor: "Please add some code before continue"
        },
        errorPlacement: function(error, element){
            $(element).each(function (){
                $(this).parent('div').find('p.error').html(error);
            });
        }
    });
});


1 commentaires

Merci pour votre réponse! Cette question a 3 ans, alors qu'il est bon que vous ayez trouvé une solution au problème, la question avait déjà été résolue, amener ce post retour à l'activité ne sert rien. Dans le futur, veuillez m'abstenir de ramener de longs messages morts :)



1
votes

La fonction jQuery .validate () fournit une option "OnSubmit" pour effectuer une action personnalisée avant la validation. Par défaut, il est défini sur true. Je l'ai utilisé dans mon projet et ça fonctionne très bien. XXX

Il s'agit d'une approche plus propre et beaucoup plus facile à comprendre. Reportez-vous à http://jqueryvalidation.org/validate#onSubmit


0 commentaires