如果textarea有readonly,Tinymce auto readonly

时间:2012-09-25 13:35:14

标签: jquery tinymce

如果textarea已经有attr("readonly")

,我如何设置tinymce以自动将编辑器设置为readonly

5 个答案:

答案 0 :(得分:14)

更通用的解决方案可能是

tinyMCE.init({
    ...
    setup: function(ed) {
        if($('#'+ed.id).attr('readonly'))
            ed.settings.readonly = true;
    }
});

这将适用于所有textareas而无需指定任何ID。此外,它实际上将编辑器设置为只读模式,而不仅仅是阻止编辑。

答案 1 :(得分:4)

如果您有以下textarea

<textarea id="my_textarea_id" readonly="readonly">Some content here.</textarea>

您可以保存对变量具有只读属性的知识:

var readonly = $("textarea#my_textarea_id").attr("readonly") ? 1 : 0;

现在是tinymce init函数。我们选择模式none以便稍后启动编辑器。

tinyMCE.init({
        theme : "advanced",
        mode: 'none',
        readonly : readonly,
        ...
});

在这里,您可以使用textarea的id

初始化您的编辑器实例
tinyMCE.execCommand("mceAddControl", true, "my_textarea_id");

您的编辑器实例将初始化为只读。

答案 2 :(得分:2)

如果不希望将tinyMCE应用于只读字段,请使用class="readonly"然后

tinyMCE.init({
    ...
    editor_deselector: "readonly"
});

具有只读类的textareas将被忽略

答案 3 :(得分:0)

如果你设置了tinyMce的readOnly模式,你应该使用tinyMCE API。 所以你可以设置只读:

tinyMCE.init({
        ...
        theme : "advanced",
        readonly : 1
});

如果你只想为textarea设置值“readonly”,那么请注意tinyMce有这个字段的自己的包装器,而native字段(来自html) - 设置为隐藏字段,所以它是无用的设置任何一个属性

答案 4 :(得分:0)

我有几个小小的mce,其中一些有class =&#34; nonEditableMCE&#34;有些人有class =&#34; editableMCE&#34;。如果是这种情况,你可以有两个inits,这是有效的。当Id使用类选择器是动态的时候会更简单。

tinymce.init({
        selector: ".nonEditableMCE",
        height: 200,
        statusbar: false,
       readonly : 1

    });

    tinymce.init({
        selector: ".editableMCE",
        height: 200,
        statusbar: false,
        readonly: 0

    });