2013-03-18 8 views
5

Sto sviluppando un plug-in segnaposto su CKEDITOR ed è fondamentalmente completo. Il problema che ho è che sto cercando di ottenere il valore e descrizione dal selezionare all'interno della finestra di dialogo e sto solo ottenendo il valore. La matrice che contiene la descrizione e il valore assomiglia a questofinestra di dialogo del plugin ckeditor selezionare la descrizione da quella selezionata

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

Nel il ritorno -> Contenuti -> elementi con IDdropdown ho setup e commit funzione. In queste funzioni ho bisogno di ottenere la descrizione proprio come ottenere il nome dall'opzione select.

davvero bisogno di aiuto con questo, grazie in anticipo

esempio ->

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

esempio < -

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

risposta

5

Utilizza il seguente per ottenere l'opzione di testo:

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

Ha funzionato esattamente come volevo, grazie mille – Ziinloader

Problemi correlati