TinyMCE:从模态列表框中获取值 window
TinyMCE: get values from a listbox in a modal window
我正在为 Wordpress 创建一个 TinyMCE 插件。它有一个 textbox
和一个 listbox
字段,都处于模态 window 中。
代码如下:
(function () {
tinymce.create('tinymce.plugins.windowdata', {
init : function(ed, url) {
ed.addButton('showModal', {
title: 'Show Modal',
image: url + '/img/button.png',
onclick: function () {
ed.windowManager.open({
title: 'Minestra',
body: [
{type: 'textbox', name: 'Field', label: 'Number', value: '', tooltip: 'Tooltip', maxLength: 3, classes: 'i1n'}, //textbox
{type: 'listbox', label: 'Listbox', classes: 'i1lb', values: [
{text: '', value: ''},
{text: 'Number', value: 'lone_number'},
{text: 'Bar', value: 'bar'},
]}, //listbox
],
onsubmit: function () {
var n1 = document.getElementsByClassName('mce-i1n')[0].value; //textbox value
var t1 = document.getElementsByClassName('mce-i1lb')[0].getElementsByTagName('button')[0].getElementsByClassName('mce-txt')[0].innerHTML; //listbox value
ed.execCommand('mceInsertContent', 0, n1+' is of type '+t1) //write contents
}
})
}
});
}
)
我的问题是关于如何获取字段值。我所做的与 textbox
(onsubmit()
方法中的 n1
var)配合得很好,但是 listbox
得到的文本与显示给 TinyMCE 用户的文本相同(每个列表框项目中的文本变量)。
我想要的是一种获取价值的方法;另外,我想我没有得到正确的方法,即使是文本框。任何人都可以帮助我吗?谢谢。
我自己解决了:我必须为我的所有字段命名:
{type: 'textbox', name: 'Field', label: 'Number', value: '', tooltip: 'Tooltip', maxLength: 3, classes: 'i1n'}, //textbox
{type: 'listbox', name: 'Listbox', label: 'Listbox', classes: 'i1lb', values: [
{text: '', value: ''},
{text: 'Number', value: 'lone_number'},
{text: 'Bar', value: 'bar'},
]
此时,为了生成我的内容,我以这种方式获得了值:
onsubmit: function (e) {
e.data.Field;
e.data.Listbox;
}
并用它来编写 TinyMCE textarea。要取回值,我必须以这种方式修改文本框字段:
{type: 'textbox', name: 'Field', label: 'Number', value: '', tooltip: 'Tooltip', maxLength: 3, classes: 'i1n', value: ed.selection.getContent()}
与列表框类似
生成内容的更好方法是:
onsubmit: function (e) {
// Insert content when the window form is submitted
e.insertContent('Textbox content: ' + e.data.Field);
e.insertContent('Listbox content: ' + e.data.Listbox)
}
我正在为 Wordpress 创建一个 TinyMCE 插件。它有一个 textbox
和一个 listbox
字段,都处于模态 window 中。
代码如下:
(function () {
tinymce.create('tinymce.plugins.windowdata', {
init : function(ed, url) {
ed.addButton('showModal', {
title: 'Show Modal',
image: url + '/img/button.png',
onclick: function () {
ed.windowManager.open({
title: 'Minestra',
body: [
{type: 'textbox', name: 'Field', label: 'Number', value: '', tooltip: 'Tooltip', maxLength: 3, classes: 'i1n'}, //textbox
{type: 'listbox', label: 'Listbox', classes: 'i1lb', values: [
{text: '', value: ''},
{text: 'Number', value: 'lone_number'},
{text: 'Bar', value: 'bar'},
]}, //listbox
],
onsubmit: function () {
var n1 = document.getElementsByClassName('mce-i1n')[0].value; //textbox value
var t1 = document.getElementsByClassName('mce-i1lb')[0].getElementsByTagName('button')[0].getElementsByClassName('mce-txt')[0].innerHTML; //listbox value
ed.execCommand('mceInsertContent', 0, n1+' is of type '+t1) //write contents
}
})
}
});
}
)
我的问题是关于如何获取字段值。我所做的与 textbox
(onsubmit()
方法中的 n1
var)配合得很好,但是 listbox
得到的文本与显示给 TinyMCE 用户的文本相同(每个列表框项目中的文本变量)。
我想要的是一种获取价值的方法;另外,我想我没有得到正确的方法,即使是文本框。任何人都可以帮助我吗?谢谢。
我自己解决了:我必须为我的所有字段命名:
{type: 'textbox', name: 'Field', label: 'Number', value: '', tooltip: 'Tooltip', maxLength: 3, classes: 'i1n'}, //textbox
{type: 'listbox', name: 'Listbox', label: 'Listbox', classes: 'i1lb', values: [
{text: '', value: ''},
{text: 'Number', value: 'lone_number'},
{text: 'Bar', value: 'bar'},
]
此时,为了生成我的内容,我以这种方式获得了值:
onsubmit: function (e) {
e.data.Field;
e.data.Listbox;
}
并用它来编写 TinyMCE textarea。要取回值,我必须以这种方式修改文本框字段:
{type: 'textbox', name: 'Field', label: 'Number', value: '', tooltip: 'Tooltip', maxLength: 3, classes: 'i1n', value: ed.selection.getContent()}
与列表框类似
生成内容的更好方法是:
onsubmit: function (e) {
// Insert content when the window form is submitted
e.insertContent('Textbox content: ' + e.data.Field);
e.insertContent('Listbox content: ' + e.data.Listbox)
}