2009-11-18 2 views
1

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

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

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

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> 

и активировать поле формы текстового поля, вы кладете класс = «mceEditor» на нем.

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

TinyMCE плагин: http://github.com/kete/tiny_mce

ответ

0

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

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

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

+0

Я добавил его функционировать insert_fields , но это не создало правильного эффекта. Функция insert_fields (link, method, content) { var new_id = new Date(). GetTime(); var regexp = new RegExp ("new_" + method, "g") $ (link) .up(). Insert ({ before: content.replace (regexp, new_id) }); \t var new_editor = новый tinymce.Editor (new_id, { \t}); \t новый_editor.render(); } –

+0

Я не понимаю, что делает ваша функция. Если метод «new_» + является идентификатором вновь добавленной текстовой области, просто отправьте его в конструктор редактора. Я не уверен, что время будет работать, так как оно ожидает строку, которая является идентификатором текстовой области в DOM – danivovich

0

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

вставив

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

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

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

Смежные вопросы