laloune
laloune

Reputation: 673

TinyMCE - disable standard save button

I try to disable programmatically the standard "save" button of the save plugin

tinymce.init
  ({
    selector: '#editorMain',
    plugins: "save,code,textcolor,charmap,searchreplace,paste,wordcount",
    height: 400,
    setup: function(editor) {
        editor.on('keyup',function(e){
            console.log(getStats('editorMain').chars);
            var body = tinymce.get('editorMain').getBody();
            var currentValue=tinymce.trim(body.innerText || body.textContent);
            var currentCharsCount=getStats('editorMain').chars;
            var limit=10;
            var diff=limit - currentCharsCount;
            if (diff>-1)
            {
                $("#chars_left").html(diff + " characters left");
            }
            else
            {
                $("#chars_left").html("Your comment is too long");
                // here should we disable the save button
            }

        });
    },

I googled for a solution and found that in version 3.x there was an object called "ControlManager". This has been removed in version 4 (the one I currently use)

According to the documentation the following should be implemented to do that:

// In TinyMCE 4 you can use the simpler stateSelector setting
editor.addButton('SomeButton', {
    text: 'My button',
    stateSelector: 'a'
});

but how can this work for the "save" button ? the save button comes when I use the "save" plugin, this does not have to be programmatically added.

Upvotes: 0

Views: 1421

Answers (2)

laloune
laloune

Reputation: 673

well that was a tough one. This:

    tinymce.activeEditor.theme.panel.find('toolbar *')[1];

enables to access the button. then the ".disabled(1)" method.

That's a pity that we cannot access the elements using their names or ids...

Upvotes: 1

DFriend
DFriend

Reputation: 8964

If you don't want the functionality of the save plugin simply remove it from the list in the plugins: init options. Use the list shown here.

tinymce.init
  ({
    selector: '#editorMain',
    plugins: "code,textcolor,charmap,searchreplace,paste,wordcount",
    ....

Upvotes: 0

Related Questions