Я создаю новый плагин CKEDITOR и в настоящее время работаю над функциями диалога.
Я хочу получить значение выбранного элемента в раскрывающемся меню (идентификатор selectedLang) и извлечь его в переменную «selectLang», которую можно использовать в функции фиксации текстового поля (идентификатор spanTitle).
Но мой кусок кода для этого не работает. Есть идеи, как это решить?
CKEDITOR.dialog.add( 'spanDialog', function( editor ) {
return {
title : 'Test for my new dialog',
minWidth : 550,
minHeight : 100,
resizable: CKEDITOR.DIALOG_RESIZE_NONE,
contents : [
{id : 'spanEditor',
label : 'Insert an ID',
elements : [
{
type: 'select',
id: 'choseLang',
label: 'Language (mandatory)',
items: [
[ 'Non spécifié','notSet' ],
[ 'Français','fra'],
[ 'Latin','lat' ],
],
default:'notSet',
setup: function(element) {
var selectLang = this.getValue();
},
onChange : function(element) {
var selectLang = this.getValue();
},
},
{
type: 'text',
id: 'spanTitle',
label: 'Identifier',
setup: function( element, dialog ) {
var value = element.getAttribute( 'id' ) ? element.getAttribute( 'id' ) : '';
this.setValue( value );
},
commit: function( element) {
var dialog = this.getDialog(),
selectLang = dialog.getContentElement ('spanDialog', 'spanTitle');
var value = this.getValue();
if (value || value=='id') {
if(value.startsWith('fra_') == true || value.startsWith('lat_') == true ) {
element.setAttribute('id', value);
}
else if(value.startsWith('fra_') == false || value.startsWith('lat_') == false ) {
if (selectLang == 'fra') {element.setAttribute('id', 'fra_' + value);}
if (selectLang == 'lat') {element.setAttribute('id', 'lat_' + value);}
}
;}
else { element.removeAttribute('id');}
}
}
]
}
],
};
});