2016-04-22 4 views
1

Это код javascript. Я использую bodyType: 'tabpanel', потому что я хочу 2 вкладки. Проблема в том, когда срабатывает onsubmit: function(e) { console.log(e.data); }, я получаю только результат Object {nameA: "aaa", ageA: "a1"}. Итак, как мне получить данные из Tab B?tinymce plugin - как получить данные из более чем одной вкладки?

(function() { 
    /* Register the buttons */ 
    tinymce.create('tinymce.plugins.MyButtons', { 
      init : function(editor, url) { 

       editor.addButton('themedropdownbutton', { 
       title : 'My dropdown button', 
       type: 'menubutton', 
       text: 'Theme Shortcodes', 
       menu: [ 
         { 
          text: 'Tabs Example', 
          onclick: function() { 
           var win = editor.windowManager.open({ 
            title: 'Content Tabs', 
            bodyType: 'tabpanel', 
            body: [ 
             { 
              title: 'My Tab A', 
              type: "form", 
              items: [ 
               { name: 'nameA', type: 'textbox', label: 'Your Name TAB A' }, 
               { name: 'ageA', type: 'textbox', label: 'Your Age TAB A' }, 
              ] 
             }, 
             { 
              title: 'My Tab B', 
              type: "form", 
              items: [ 
               { name: 'nameB', type: 'textbox', label: 'Your Name TAB B' }, 
               { name: 'ageB', type: 'textbox', label: 'Your Age TAB B' }, 
              ] 
             }, 
            ], 
            onsubmit: function(e) { 
             console.log(e.data); // output only this - Object { nameA: "aaa", ageA: "a1" } 
                   // where is { nameB: "bbb", ageB: "b1" } ????? 
            } 
           }); 
          } 
         }, 
         { 
          // other functions 
         }, 
        ] // end menu: 
       }); 
      }, 
      createControl : function(n, cm) { 
       return null; 
      }, 
    }); 

    tinymce.PluginManager.add('my_button_script', tinymce.plugins.MyButtons); 

})(); 

ответ

1

Хорошо, наконец, нашли ответ, если у вас есть та же самая проблема использовать этот

onsubmit: function(e) { 
    var alldata = win.toJSON(); 
    console.log(JSON.stringify(alldata)); // just for testing, you don't need this line 
    // You can then access the results with this example 
    editor.insertContent('Tab A name is ' + alldata.nameA + '; Tab B name is ' + alldata.nameB); 
    editor.insertContent('Tab A age is ' + alldata.ageA + '; Tab B age is ' + alldata.ageB); 
} 

Нашли ссылку в http://community.tinymce.com/forum/viewtopic.php?id=33852

0

я найти другое решение, которые выглядят лучше (для меня) , Вместо

... 
bodyType: 'tabpanel', 
body: [...] 
... 

вы можете сделать tabpanel внутри корпус. Он должен выглядеть следующим образом: (я упростить пример и сделать Уведомления полных данных о представить & вставить некоторое содержание)

(...) 
editor.windowManager.open({ 

      title: 'Content Tabs', 
       //bodyType: 'tabpanel', <- delete this 
       body: [ 
       {type: 'container', label:'My all tabs'}, //it's not necessary, but shows, that other things can be there 
       { 
        title: 'Tabpanels', 
        type: 'tabpanel',      
        items: [ 
         { 
         title: 'My Tab A', 
         type: "form", 
         items: [ 
          {name: 'nameA', type: 'textbox', 
          label: 'Your Name TAB A' }, 
          { name: 'ageA', type: 'textbox', 
          label: 'Your Age TAB A' } 
         ] 
         }, 
         { 
         title: 'My Tab B', 
         type: "form", 
         items: [ 
          { name: 'nameB', type: 'textbox', 
          label: 'Your Name TAB B' }, 
          { name: 'ageB', type: 'textbox', 
          label: 'Your Age TAB B' } 
         ] 
         } 
        ] 
       } 
       ], 
       onsubmit: function(e) { 
       editor.selection.setContent('[Tested menu'); 
       editor.insertContent(' TabA name: ' + e.data.nameA); 
       editor.insertContent(", TabB name: " + e.data.nameB +']'); 
       alert(e.data.toSource()); 
       } 

     } 
... 

Я делаю TinyMceFiddle для этого: http://fiddle.tinymce.com/0Wfaab/1. (Извините, что я не добавляю комментарий под ваш ответ, но я не могу этого сделать. И я узнаю, что console.log не работает с TinyMce, но alert отображает объект.)