2013-03-18 56 views
5

我正在开发一个占位符插件CKEDITOR,它基本上是完整的。我遇到的问题是我试图从选择的对话框中获取值和说明,并且我只获取该值。 包含的描述和值的阵列看起来像这样ckeditor插件对话框选择从选定的描述

- > items: [['description1', 'value1'], ['description2', 'value2']]< -

返回 - >内容 - >元件与IDdropdown我有setupcommit功能。在这些函数中,我需要获取描述,就像从选择选项中获取名称一样。

真的需要这样一个帮助,在此先感谢

例子 - >

<select> 
    <option value="value1">description1</option> 
    <option value="value2">description2</option> 
</select> 

例如< -

(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); 
    }); 
})(); 

回答

5

使用以下方法来获得期权的正文:

var input = this.getInputElement().$; 
console.log(input.options[ input.selectedIndex ].text); 
>> "description1" 
+0

就像我想要的那样工作,非常感谢你 – Ziinloader 2013-03-19 09:06:51