Как проверить, имеет ли CKEditor некоторый текст в нем?

У меня есть HTML-форма с несколькими полями. Один из них является текстовой областью, управляемой CKEditor.

Когда пользователь хочет отправить форму, я хочу проверить, ввел ли он значения во все поля.

Я знаю, как я могу проверить, имеет ли управление CKEditor что-нибудь в нем, но это могли бы быть "пустые" HTML-тэги без любого текста в нем.

Как я проверяю на текст?

Сторона сервера я использую что-то как обрезка PHP (strip_tags ($content)), таким образом, я хотел бы иметь то же в JavaScript.

Решение с помощью jQuery также было бы применимо.

19
задан Andrew Hendrie 17 February 2015 в 17:51
поделиться

2 ответа

Это будет работать:

$("#editorContainer iframe").contents().find("body").text();

Это будет содержать только текст, без HTML-тегов.

ОБНОВЛЕНИЕ

Это определенно работает на демонстрационной странице CKEditor .Используйте Firefox и Firebug, перейдите в консоль Firebug и введите:

$("#demoInside iframe").contents().find("body").text();

Консоль распечатает текст в редакторе без тегов html. Убедитесь, что в вашем конкретном приложении установлен правильный селектор. Вы можете проверить свой селектор следующим образом:

$("#demoInside iframe").contents().find("body").length;

Это должно быть равно 1. Если он 0, ваш селектор неправильный.

ОБНОВЛЕНИЕ 2

Опять же, мой код все еще правильный, и он все еще работает на этой странице. Вам просто нужен правильный селектор. На странице, на которую вы ссылаетесь, это с идентификатором cke_editor1 . Эта конкретная страница не использует jQuery, поэтому требуется дополнительная работа, чтобы доказать, что этот образец работает. Установите FireQuery , выполните jqueryify »страницу, а затем сделайте это в консоли Firebug (обратите внимание, что вам нужно использовать jQuery , а не $ . Вот как работает FireQuery ).

jQuery("#cke_editor1 iframe").contents().find("body").text();

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

или