Получить режим tinyMce для активации в новом текстовом поле, вставленном AJAX (в Rails) - PullRequest
1 голос
/ 18 ноября 2009

У меня есть вложенный атрибут (речи) под моделью Speaker, и я использую tinyMce, чтобы позволить оратору заполнить форму профиля, где у него может быть одна или несколько речей, которые они дают.

Я использую помощники вложенных атрибутов Rails 2.3, которые используются в учетной записи github примера сложной формы Райана Бейтса.

Функциональность tinyMce отлично подходит для "Речи", если она загружена страницей, но не активна для новой "Речи", загруженной AJAX в "Добавить новую речь" (вызывает скрипт insert_fields для добавления полей формы)

Код tinyMce на странице

<script src="/javascripts/tiny_mce/tiny_mce_src.js?1254270151" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
tinyMCE.init({
editor_selector : 'mceEditor',
language : 'en',
mode : 'textareas',
theme : 'simple'

});
//]]>
</script>

И чтобы активировать поле формы textarea, вы помещаете в него class = "mceEditor".

Есть ли способ активировать tinyMce в новых полях формы, вставленных в Ajax?

Плагин TinyMce: http://github.com/kete/tiny_mce

Ответы [ 2 ]

0 голосов
/ 23 ноября 2009

Я не знаю, хороший ли это ответ; но для этой ситуации (кто-то следит за Railscast на вложенных атрибутах и ​​сложных формах и хочет использовать tinyMCE)

оклейка

<script type="text/javascript">
//<![CDATA[
tinyMCE.init({
editor_selector : 'mceEditor',
language : 'en',
mode : 'textareas',
theme : 'simple'

});
//]]>
</script>

В мою функцию вставки полей сделал это

0 голосов
/ 18 ноября 2009

Вы можете создать новый редактор после инициализации TinyMCE , используя :

var new_editor = new tinymce.Editor('new_id', {
});
new_editor.render();

Это не будет использовать настройки, которые у вас есть в вашем контроллере, и является чистым решением javascript, не совсем ruby, но вы сможете легко запустить его после завершения вызова ajax и получения идентификатора новая текстовая область.

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