2014-01-16 2 views
0

Я создаю много TinyMCE с Джанго:Применить настройки TinyMCE для динамически создано TEXTAREA

<script type="text/javascript" src="{{ STATIC_PREFIX }}js/tiny_mce/tiny_mce.js" 
</script> 
<script type="text/javascript" src="{{ STATIC_PREFIX }}js/tiny_mce/tiny_init.js" 
</script> 

<script type="text/javascript"> 
tinyMCE.settings = configArray[1]; 
tinyMCE.execCommand('mceAddControl', true, "tobs"); 
</script> 
     {% for obs in obss %} 
     <div id="obs"> 
      DateTime:<samp>{{ obs.date }}</samp><br> 
      Description: <br> 
      <textarea id="tobs" class="ro">{{ obs.description }}</textarea><br> 
      {% for f in obs.content %} 
       File: 
       <a href=Observations/{{f}} title="download file"> 
       <script> 
       get_name("{{f}}") 
       </script> 
       </a><br> 
      {% endfor %} 
      Author:<samp>{{ obs.user }}</samp><br> 
      Type:<samp>{{ obs.category }}</samp><br><br> 
     </div> 
     {% empty %} 
      <br>Sorry, no observations in DataBase. 
     {% endfor %} 

Но проблема в том, изолейцина только первый TextArea получает мои настройки из configArray [1] и выглядит как TinyMCE, второй и третий просто простая текстовая область без настроек tinymce.

Как я могу изменить это?

+0

Кажется, что этого не существует. ..got отбросить tinyMCE от проекта – Viktor

ответ

1

Измените идентификатор для каждого текстового поля. Иды должны быть уникальными в HTML, но ваш цикл for создает несколько текстовых полей с одним и тем же идентификатором. TinyMCE пытается отобразить textarea с id = "tobs" и запутывается, когда находит более одного. Вы можете попробовать:

{% for obs in obss %} 
    ... 
    {% with "tobs"|add:forloop.counter as area_id %} 
     <textarea id={{ area_id }} class="ro">{{ obs.description }}</textarea<br> 
    {% endwith %} 
    ... 
{% endfor %} 

Это должно сделать ваши с идентификаторами текстовых областей: tobs1, tobs2, tobs3, ..., которые должны исправить эту проблему.

Подробнее здесь: https://docs.djangoproject.com/en/dev/ref/templates/builtins/#for

И здесь: TinyMCE not working when loading two textareas

Но должно быть более элегантное решение этой проблемы. До сих пор я смог найти этот пример, который использует класс для различения текстовых полей и вообще не использует идентификаторы, что противоречит решению из последней ссылки: http://www.tinymce.com/tryit/3_x/multiple_configs.php

+0

Я не пробую это решение, но это, кажется, хорошая идея – Viktor

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