Как включить и выключить режим только для чтения во время выполнения с помощью кнопки-флажка для tinymce?

Я установил tinymce, чтобы он был готов только при инициализации, но как я могу установить его в редактируемый режим во время выполнения с помощью кнопки-флажка?

HTML,

<textarea id="my_textarea_id" readonly="readonly">Some content here.</textarea>
<input type="checkbox" class="switch" /> <span>Turn editor on/ off</span>

JS,

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

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

var object = $('.switch');
object.click(function(){
            if(object.prop('checked') === true){ 
                $("#my_textarea_id").data('readonly','true');
            } else {
                $("#my_textarea_id").data('readonly','false');
            }
});

3 ответа

Попробуй это

var object = $('.switch');
object.change(function(){
     $('#my_textarea_id').attr('readonly',!this.checked);
})

Если вы используете версию TinyMCE > 4.3.0, следующий код должен работать:

var object = $('.switch');
object.click(function(){
    if(object.prop('checked') === true){
        tinymce.activeEditor.setMode('readonly')
    } else {
        tinymce.activeEditor.setMode('design')
    }
});

Ссылка: https://github.com/tinymce/tinymce/issues/2580

Попробуй это:

var object = $('.switch');
object.change(function(){
            if(object.prop('checked') === true){ 
                $("#my_textarea_id").attr('readonly',true);
            } else {
                $("#my_textarea_id").attr('readonly',false);
            }
});
Другие вопросы по тегам