选择框不起作用的TinyMCE自定义对话框

时间:2016-06-09 作者:Sorcy

对于一个主题,我使用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]\');
                    }
            });
        }
    }]
对话框显示没有问题,选择框在那里,没有问题。当我提交对话框时,我在onsubmit函数中得到一个事件对象,数据属性确实包含一个键为“size”的对象,但键的值始终是空字符串。

我做错了什么?

1 个回复
最合适的回答,由SO网友:WofloW 整理而成

尝试

type: \'listbox\', 
values: [{text: \'small\'}, {text: \'normal\'}, {text: \'large\'}]
有关详细信息:https://github.com/tinymce/tinymce/blob/master/js/tinymce/plugins/link/plugin.js

当我想在对话框中使用select2时,我遇到了同样的问题。所有插件都使用listbox。我猜他们总是使用listbox而不是selectbox。selectbox的处理程序已损坏。