web-dev-qa-db-ja.com

選択ボックスがあるTinyMCEカスタムダイアログが機能しない

テーマとして、ed.addButtonを使ってWordpressのTinyMCEにカスタムメニューを追加します。

今やこれらのメニューポイントのいくつかは多かれ少なかれ複雑なオプションを持っています、それで私はユーザーにこれらを記入させるためにTinyMCEのカスタムダイアログ機能を使うことになると思いました。これまでは単純なテキストフィールドで問題なく動作しますが、selectboxを使用しようとするとすぐに動作しなくなります。

コードは次のようになります。

ed.addButton('mybutton', {
    type: 'menubutton',
    text: 'My Button',
    icon: false,
    menu: [
        {
            text: 'Bootstrap Well',
            onclick: function () {
                ed.windowManager.open({
                    title: 'Bootstrap Well',
                    body: [
                        {type: 'selectbox', name: 'size', label: 'Size', options: ['small', 'normal', 'large']}
                    ],
                    onsubmit: function (e) {
                        var selected = ed.selection.getContent(),
                                       size = e.data.size;

                        console.log(e.data);

                        ed.insertContent('[well size="' + size + '"]' + selected + '[/well]');
                    }
            });
        }
    }]

ダイアログは問題なく表示され、selectboxはそこにあり、問題はありません。ダイアログを送信すると、onsubmit関数内にイベントオブジェクトが入り、data属性に "size"というキーを持つオブジェクトが含まれますが、キーの値は常に空の文字列です。

私はここで何をしていますか?

1
Sorcy

やってみる

type: 'listbox', 
values: [{text: 'small'}, {text: 'normal'}, {text: 'large'}]

詳細については、 https://github.com/tinymce/tinymce/blob/master/js /tinymce/plugins/link/plugin.js

ダイアログでselect2を使用したいときにも同じ問題に遭遇しました。すべてのプラグインはリストボックスを使用しています。私は彼らがselectboxの代わりに常にlistboxを使っていると思います。そしてselectboxのハンドラは壊れています。

1
WofloW