использование CKEditor с плагином проверки jQuery не работает - PullRequest
2 голосов
/ 15 декабря 2009

Я использую CKeditor и плагин проверки jQuery от basistance. Моя текстовая область (с включенным в нее CKEditor) проверяется jQuery, но это работает только после второго нажатия на кнопку «Отправить».

Короче говоря: Когда я в первый раз отправляю форму, когда данные вводятся в CKEditor, он говорит: «поле пусто». Во второй раз он говорит, что все в порядке и форма отправляется.

Я прочитал решение для этого:

"Вы можете обойти эту проблему, вызвав CKEDITOR.editor :: updateElement прямо перед каждой процедурой проверки."

Я не могу найти, как это реализовать:

$(document).ready(function(){
    CKEDITOR.replace( 'prod_description',
    {
        toolbar: 'MyToolbar'
    }
    );

    $("#btnOk").click(function(){
        CKEDITOR.instances.editor1.updateElement();
        alert('click');
    });
});

Это всегда дает мне ошибку: «CKEDITOR.instances.editor1 не определен»

Любые идеи о том, как решить эту проблему. Документация от CKEditor находится здесь: http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#updateElement

Ответы [ 3 ]

4 голосов
/ 15 декабря 2009

спасибо czarchaic,

Я решил это, написав:

CKEDITOR.instances.prod_description.updateElement ();

где "prod_description" - это название вашего текстового сообщения, с которым связан CKeditor.

1 голос
/ 16 июля 2011

У меня есть несколько CKEDITORS на моей странице, поэтому я делаю это:

        // You need to update the editors before jqValidator.
        for (var i in CKEDITOR.instances)
        {
            CKEDITOR.instances[i].updateElement();
        }
        if (!jqValidator.form())
        {
            alert('Error Alert: please correct the errors detailed below, then click "Apply changes" again.');
            return;
        }
1 голос
/ 03 марта 2011

Возможно, это не лучший способ сделать это, но я создал правило jquery, которое просто проверяет, есть ли данные в CKEditor. Если есть данные, то это проходит правило. Если нет, то это не удается. Кажется, это работает для меня очень хорошо.

//Have to build custom method to check ckeditor
jQuery.validator.addMethod("ckeditor", function(value, element) { 
    var textData = editor.getData();
    if(textData.length>0) return true;
    return false;
}, "No data in editor");

Тогда мое правило выглядит так:

'fieldName': "ckeditor"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...