2013-03-18 9 views
5

Im bin die Entwicklung eines Platzhalter-Plugin zu CKEDITOR und es ist im Grunde abgeschlossen. Das Problem, das ich habe, ist, dass ich versuche, den Wert und Beschreibung von innerhalb des Dialogs zu bekommen, und ich bekomme nur den Wert. Das Array, das die Beschreibung und Wert wie folgt aussiehtckeditor plugin dialog wählen Sie die Beschreibung aus der ausgewählten

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

In die Rückkehr -> Inhalt -> Elemente mit IDdropdown Ich habe setup und commit Funktion. In diesen Funktionen muss ich die Beschreibung erhalten, genauso wie ich den Namen aus der Option auswählen kann.

müssen wirklich mit diesem helfen, danke im voraus

Beispiel ->

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

Beispiel < -

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

Antwort

5

Verwenden Sie die folgende Option ist zu erhalten Text:

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

Das funktionierte so, wie ich wollte, vielen Dank – Ziinloader

Verwandte Themen