CKEditor Checkbox Default Value
CKEditor Checkbox Default Value
I am using CKEditor's Enhanced Image plugin (image2) because it allows users to insert captioned images. However, I cannot enable the "captioned image" checkbox by default.
Setting a breakpoint after the code below shows the value is checked, but continuing unchecks it again.
CKEDITOR.on( 'dialogDefinition', function( ev )
// Take the dialog name and its definition from the event data.
var dialogName = ev.data.name;
var dialogDefinition = ev.data.definition;
if (dialogName == 'image2')
dialogDefinition.onShow = function()
captionField = this.getContentElement('info', 'hasCaption');
captionField.setValue('checked');
console.log(captionField);
debugger;
);
Any advice on how to tick a CKEditor checkbox by default is greatly appreciated.
UPDATE
I tried updating the code based on Marek's answer to fit my needs, but the dialogShow
event doesn't seem to get called this way.
dialogShow
CKEDITOR.on('dialogShow', function( evt )
var dialog = evt.data;
if ( dialog._.name === 'image2' && !dialog.widget.isReady() )
console.log('test');
evt.data.getContentElement( 'info', 'hasCaption' ).setValue( true );
);
regarding an update:
dialogShow
doesn't work this way because it's called on editor instance, not the global namespace. I recommend playing with CKEditor 4 API docs. If you don't want to use CKEDITOR.replace
then you somehow need to get the editor instance. You can listen to instanceReady
event which is fired on a global namespace. And there you'd need to add editor#dialogShow
listener. But we're going away from original question here.– Marek Lewandowski
Sep 16 '18 at 21:58
dialogShow
CKEDITOR.replace
instanceReady
editor#dialogShow
Thanks for the update and pointing me in the right direction. I'm going to play around with the listeners some more.
– chirinosky
Sep 17 '18 at 14:16
1 Answer
1
You can use dialogShow
event where you can modify dialog properties.
dialogShow
CKEDITOR.replace( 'editor1',
extraPlugins: 'image2',
removePlugins: 'image',
on:
dialogShow: function( evt )
var dialog = evt.data;
if ( dialog._.name === 'image2' && !dialog.widget.isReady() )
evt.data.getContentElement( 'info', 'hasCaption' ).setValue( true );
);
Note the code where I'm checking on whether the widget actually exists, that's because you don't want to modify this checkbox if it is editing an existing widget.
For reason not known to me it the code doesn't work in builtin SO code platform, so all I can do is to drop codepen link to check the code in action.
Finally we're working on a solution that would be suitable for your case. You can track it at https://github.com/ckeditor/ckeditor-dev/issues/2277
Thanks Marek. The code above checks the box, but causes some unwanted side effects. I have 05 editor instances on the page and CKEDITOR.replace() prevents the other instances from loading and sets a different toolbar outside of 'default' config. Would a variation of the code above (updated question) work?
– chirinosky
Sep 16 '18 at 3:16
Thanks for contributing an answer to Stack Overflow!
But avoid …
To learn more, see our tips on writing great answers.
Required, but never shown
Required, but never shown
By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy
It seems the checkbox is hidden and there is an image which changes color on check and unchecked.Not sure if you can see it from developer's tool
– brk
Sep 7 '18 at 17:05