我用django创造了很多东西:
<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,第二个和第三个只是简单的textarea没有tinymce设置。
我怎样才能改变耳语?
答案 0 :(得分:1)
更改每个textarea的ID。 id应该在HTML中是唯一的,但是你的for循环创建了具有相同id的多个textareas。 TinyMCE试图用id =“tobs”渲染textarea,并在找到多个时感到困惑。你可以尝试:
{% for obs in obss %}
...
{% with "tobs"|add:forloop.counter as area_id %}
<textarea id={{ area_id }} class="ro">{{ obs.description }}</textarea<br>
{% endwith %}
...
{% endfor %}
这应该使你的textareas与id:tobs1,tobs2,tobs3,...,这应该解决问题。
在此处阅读更多内容:https://docs.djangoproject.com/en/dev/ref/templates/builtins/#for
在这里:TinyMCE not working when loading two textareas
但是应该有一个更优雅的解决方案来解决这个问题。到目前为止,我已经能够找到这个例子,它使用类来区分textareas并且根本不使用id,这与上一个链接的解决方案相矛盾:http://www.tinymce.com/tryit/3_x/multiple_configs.php