基于WindowManager中Select的动态值

时间:2017-04-28 17:15:28

标签: javascript tinymce tinymce-4

我的tinyMCE弹出框中有2个控件:1选择,1个文本框。我想要做的是根据选定的值填充文本框。我可以得到很好的选择值,但我似乎无法将该值设置为文本框。关于如何使这项工作的任何想法?这就是我到目前为止所拥有的:

( function( $ ) {

    tinymce.PluginManager.add( 'my_custom_button', function( editor, url ) {
        editor.addButton( 'my_custom_button', {
            text: 'My Custom Button',
            icon: false,
            onclick: function() {
                editor.windowManager.open( {
                    title: 'My Custom button Settings',
                    body: [
                        {
                            type   : 'listbox',
                            name   : 'customselect',
                            label  : 'Custom Select',
                            values : [
                                { text: 'FOO', value: 'foo' },
                                { text: 'BAR', value: 'bar' }
                            ],
                            onselect : function( listObj ) {

                                // The control object value
                                console.log( listObj.control.settings.value );
                             }
                        },
                        {
                            type   : 'textbox',
                            name   : 'customtext',
                            label  : 'Foo or Bar?',
                            value  : ''
                        }
                    ]
                } );
            },
        } );
    } );

} )();

1 个答案:

答案 0 :(得分:0)

我想找到一个解决方案,我只访问窗口中的输入,但我最终做的是两个字段的设置ID,然后只是在JS中设置值:

( function( $ ) {

    tinymce.PluginManager.add( 'my_custom_button', function( editor, url ) {
        editor.addButton( 'my_custom_button', {
            text: 'My Custom Button',
            icon: false,
            onclick: function() {
                var tinyMCEWindow = editor.windowManager.open( {
                    title: 'My Custom button Settings',
                    body: [
                        {
                            type   : 'listbox',
                            name   : 'customselect',
                            label  : 'Custom Select',
                            id     : 'customfoobarselect',
                            values : [
                                { text: 'FOO', value: 'foo' },
                                { text: 'BAR', value: 'bar' }
                            ],
                            onselect : function( listObj ) {
                                document.getElementById( 'customfoobartext' ).value = listObj.control.settings.value;
                             }
                        },
                        {
                            type   : 'textbox',
                            name   : 'customtext',
                            label  : 'Foo or Bar?',
                            id     : 'customfoobartext',
                            value  : ''
                        }
                    ]
                } );
            },
        } );
    } );

} )();