2013-11-14 92 views
0

我想爲ckeditor構建一個自定義插件。如何從'select'標籤中獲取所選項目?

我的問題是,我創建了dialog窗口,它包含'select'菜單。無論用戶 選擇什麼,我都想插入該項目。

這是我的腳本。

function customTag(editor){ 

     return { 
      title:'Audio Link', 
      minWidth : 200, 
      minHeight : 200, 
      buttons : [CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton], 
      onOk: function(){ 
      var id = this.getContentElement('tab', 'menu').getValue(); 
      //not sure what to do to get item1 and item2. 

      }, 
      contents: [ 
       { 
        id:'tab', 
        label: 'test', 
        elements: [ 
         { 
         type:'select', 
         id:'menu', 
         items: [['item1', 0, 'item2' , 1]], 
         } 
        ] 
       } 
      ] 
     } 
    } 

     CKEDITOR.dialog.add('customTag', function(editor){ 

      var ck = new customTag(editor) 
      return ck; 
     }); 

我能夠通過使用var id = this.getContentElement('tab', 'menu').getValue();var id01獲得價值物品1和ITEM2但我也想item1item2爲好。

他們的文檔沒有多說如何得到它。 http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.dialog.html

我不知道該怎麼做。任何人都可以幫助我嗎?謝謝!

回答

0

您以錯誤的方式定義了選擇的項目(請參閱docs)。總之,使用this.getValue(),並比較其與this.itemscommit方法(fiddle)找到任何你想要的:

CKEDITOR.dialog.add('myDialog', function(editor) { 
    return { 
     title: 'My Dialog', 
     onOk: function() { 
      this.commitContent(); 
     },   
     contents: [ 
      { 
       id: 'tab1', 
       label: 'First Tab', 
       title: 'First Tab', 
       elements: [ 
        { 
         type:'select', 
         id:'menu', 
         label: 'My select', 
         // This is the correct way of defining items. 
         items: [ 
          [ 'foo', 5 ], 
          [ 'bar', 6 ] 
         ], 
         commit: function() { 
          // Combine value with items to retrieve anything you want. 
          console.log(this.getValue(), this.items); 
         } 
        } 
       ] 
      }   
     ] 
    }; 
}); 
相關問題