TinyMCE和textarea id改变了

时间:2012-10-22 14:10:24

标签: html tinymce textarea

我有一份textareas列表。每个textarea都在一个单独的div中:

1. < div id="div_textarea1"> <textarea id="textarea1"></textarea> < /div >
2. < div id="div_textarea2"> <textarea id="textarea2"></textarea> < /div >
3. < div id="div_textarea3"> <textarea id="textarea3"></textarea> < /div >
4. < div id="div_textarea4"> <textarea id="textarea4"></textarea> < /div >

所有这些textareas都在使用tinyMCE插件。

在每个textarea附近,我有一个删除按钮(该按钮将删除textarea)。

当我点击删除按钮时,将删除所选的textarea并更改其他textareas的id以获得适当的数字:

function deleteTitlenote(titlenote_id)
{
    $('#titlenote_div'+titlenote_id).remove();

    var nodes = document.getElementById('add_titleNote').childNodes.length;
    var n = 0;

    for(var i=1; i<= nodes+1; i++)
    {
        if(document.getElementById("titlenote"+i)!=null)
            {
                    n++;
                    document.getElementById("titlenote"+i).id="titlenote"+n;
            }
    }
}

这很好,我有一个没有tinyMCE插件的简单文本区域,但是一旦我使用mce插件,即使我更改了id,我也可以通过调用新的id来访问textarea的旧值。

关于如何解决这个问题的任何想法?谢谢。

1 个答案:

答案 0 :(得分:0)

问题在于textarea的id对应于其tinymce编辑器实例的id。更准确地说,当你初始化一个tinymce编辑器时,textarea会被隐藏,而tinymce会创建一个可信的iframe和一个使用这个iframe来编辑内容的编辑器对象。编辑器obejct获取html源元素(textarea)的id。 因此,当你更改textarea id时,你要么必须关闭所有的tinymces并重新启动它们,否则你必须将tinymce编辑器内容重置为具有相应id的tiyncem编辑器。