我正在为 CKEDITOR 开发一个占位符插件,它基本上已经完成了。我遇到的问题是我试图从对话框中的选择中获取值和描述,而我只是获取值。 包含描述和值的数组如下所示
- >
items: [['description1', 'value1'], ['description2', 'value2']]
< -
在中返回 - >内容 - >元素 ID
dropdown
我有setup
和commit
函数。在这些函数中,我需要获取描述,就像从select选项中获取名称一样。
真的需要帮助这个,提前谢谢
示例 - >
<select>
<option value="value1">description1</option>
<option value="value2">description2</option>
</select>
示例&lt; -
(function () {
function placeholderDialog(editor, isEdit) {
var lang = editor.lang.phlink,
generalLabel = editor.lang.common.generalTab;
return {
title: lang.title,
minWidth: 300,
minHeight: 80,
contents: [
{
id: 'info',
label: generalLabel,
title: generalLabel,
elements: [
{
id: 'dropdown'
, type: 'select'
, label: lang.chooseVal
, 'default': 'Detta är default'
, items: [['description1', 'value1'], ['description2', 'value2']]
, setup: function (data) {
// need the description
this.setValue(data.title);
}
, commit: function (data) {
// need the description
data.title = this.getValue();
}
},
{
id: 'text',
type: 'text',
style: 'width: 100%;',
label: lang.text,
'default': '',
required: true,
validate: CKEDITOR.dialog.validate.notEmpty(lang.textMissing),
setup: function (data) {
this.setValue(data.text);
},
commit: function (data) {
data.text = this.getValue();
}
}
]
}
],
onShow: function () {
var data = { tag: 'link', content: "detta är innehåll", title: "Länk till svar", text: "detta är text" };
if (isEdit) {
this._element = CKEDITOR.plugins.phlink.getSelectedPlaceHolder(editor);
data.title = this._element.getAttribute('title');
data.text = this._element.getText();
data.tag = this._element.getAttribute('data-jztag');
}
this.setupContent(data);
},
onOk: function () {
var data = { tag: 'link', content: null, title: null, text: null };
this.commitContent(data);
CKEDITOR.plugins.phlink.createPlaceholder(editor, this._element, data);
delete this._element;
}
};
}
CKEDITOR.dialog.add('createplaceholder', function (editor) {
return placeholderDialog(editor);
});
CKEDITOR.dialog.add('editplaceholder', function (editor) {
return placeholderDialog(editor, 1);
});
})();
答案 0 :(得分:6)
使用以下内容获取选项的文本:
var input = this.getInputElement().$;
console.log( input.options[ input.selectedIndex ].text );
>> "description1"