Berkay Yaylacı
Berkay Yaylacı

Reputation: 4513

CKEditor how to get dialog input

I have CKEditor and I added a dialog with 2 text areas in my own plugin.js folder, but I can't take text inputs when ok button pressed at dialog.

CKEDITOR.dialog.add('ticketDialog', function (editor) {
    return {
        title: 'Ticket Properties',
        minWidth: 100,
        minHeight: 100,
        maxWidth: 100,
        maxHeight: 100,
        contents:
        [
            {
                id: 'general',
                label: 'Ticket from',
                elements:
                [
                    {
                        type: 'text',
                        id: 'Ticket',
                        label: "Write the company's name that you bought from",
                        'default': "Thy,Pegasus etc."
                    },
                {
                    type: 'text',
                    id: 'Price',
                    label: "Price for single ticket",
                    'default': "0.00TL"
                }
                ]
            }
        ]

    };
});

I have mvc view page and I replace my textarea with CKeditor by using javascript and I need to handle dialog's ok event here.

<script type="text/javascript">
                                var editor = CKEDITOR.instances['editor1'];
                                if (editor) { editor.destroy(true); }
                                CKEDITOR.replace('editor1', {
                                    enterMode: CKEDITOR.ENTER_BR,
                                    extraPlugins: 'ticket',
                                    toolbar: 'Full',
                                    language:'English'
                                });


                                CKEDITOR.on('dialogDefinition', function (e) {
                                    var dialogName = e.data.name;
                                    var dialog = e.data.definition.dialog;
                                    dialog.on('ok', function () {
                                        var elementPrice = e.data.definition.dialog.getElement('Price');
                                        var rawValue = elementPrice.getInputElement().$.value;  // here I am trying to take the value of Price area input.
                                        alert(rawValue);
                                        //CKEDITOR.instances['editor1'].insertHtml(rawValue);

                                    });
                                });
                            </script>

Thank you.

Upvotes: 3

Views: 2336

Answers (1)

Berkay Yaylacı
Berkay Yaylacı

Reputation: 4513

Here is the answer for the other people to see well.

CKEDITOR.on('dialogDefinition', function (e) {
                            var dialogName = e.data.name;
                            var dialog = e.data.definition.dialog;
                            dialog.on('ok', function () {
                            var elementPrice = dialog.getContentElement('general','Price');
                            });
                        });

Upvotes: 2

Related Questions