2017-06-15 2 views
0

Je veux obtenirData() de toutes les instances de CKEditor dans ma page dont l'id commence par "desccription_" pour mettre ces données dans un tableau mais cela ne fonctionne pas, ceci est mon code:Ckeditor getData de toutes les instances dont l'id commence par "content_"

var tab_desc = new Array(); 
$('#bloc_etapes fieldset').each(function(index) 
{  
    var desc_dyn = CKEDITOR.instances[id^="description_"].getData(); 
    //var desc_dyn = $('#desc_etape'+(index+1)).val(); -------------------------ok with textarea only(without replacing them by CKE) 
    tab_desc.push(desc_dyn); 
}); 

si quelqu'un a la solution je lui serai reconnaissant!

Répondre

0
var tab_desc = []; 
for (var i in CKEDITOR.instances) { 
    if (i.indexOf('description_') == 0) { 
     tab_desc.push(CKEDITOR.instances[i].getData()); 
    } 
} 

MISE À JOUR: Pour utiliser textarea sans id/nom, instancier les s'utilisant comme éléments DOM comme ceci:

$('textarea').each(function() { 
    CKEDITOR.replace(this); 
}); 

Ensuite, chaque instance sera nommé editor1, editor2 et ainsi de suite.

MAJ2: Pour obtenir des données à partir d'instances de ckeditor dont textareas d'origine ont une classe nommée 'my_custom_class', utilisez ceci:

for (var i in CKEDITOR.instances) { 
    if (CKEDITOR.instances[i].element.$.classList.contains('my_custom_class')) { 
     console.log(CKEDITOR.instances[i].getData()); 
    } 
} 
+0

Merci un homme de beaucoup! ;) cela fonctionne pour moi mais j'ai un autre problème je suppose que vous ne pouvez pas obtenir des données de deux CKE avec le même nom/id donc je ne peux pas être en mesure d'obtenir des données de toutes mes instances CKE avec le même nom –

+0

, tu ne peux pas. Si vous avez plusieurs instances avec un identifiant/nom dupliqué, seule la dernière instance sera disponible pour l'interaction, car 'CKEditor.instances' ne contiendra qu'une seule instance. – Wizard

+0

ok merci mais il est possible de remplacer textarea avec ckeditor sans un id sur le textarea? –