À ma connaissance, la case à cocher des cases à cocher TinyMCE ne renvoie que vrai ou faux. Est-ce correct?
Est-il possible d'obtenir une liste de cases à cocher? Et toutes les valeurs d'éléments dans la liste de cases à cocher qui sont cochées seront insérées dans le message via la méthode editor.insertContent()
?
Ou peut-être une boucle for
pour vérifier si chacune d’elles est vérifiée, et si oui, récupérer une valeur?
(function() {
tinymce.PluginManager.add('portfolio_shuffle_button', function( editor, url ) {
editor.addButton( 'portfolio_shuffle_button', {
text: 'Popup',
icon: false,
onclick: function() {
editor.windowManager.open( {
title: 'Choose which Items',
body: [
//or perhaps do a for loop to check each of these are checked and if they are retrieve a value?
{
type: 'checkbox',
name: 'title',
label: 'Your title',
classes: 'what'
},
{
type: 'checkbox',
name: 'lol',
label: 'Your title',
classes: 'what'
},
],
onsubmit: function( e ) {
console.log(e.data[0]);
console.log(e);
editor.insertContent( '<h3>' + e.data.body + '</h3>');
}
});
}
});
});
})();
Tout d'abord, assurez-vous que vous utilisez les noms d'objet appropriés. Au lieu d'utiliser label
pour les cases à cocher; utilisez text
à la place. ( Syntaxe de la case à cocher TinyMCE )
Lorsque vous utilisez la fonction onsubmit()
; les informations du formulaire sont transmises à la fonction. Nous pouvons donc utiliser le premier argument de la fonction pour rechercher des valeurs de formulaire.
Ainsi, la valeur de la première case à cocher serait e.data.title
. La deuxième case à cocher serait e.data.lol
. La name
de l'élément de formulaire sera la clé de l'objet e.data.
.
Maintenant, dans la fonction onsubmit()
; nous pouvons tester si chaque case à cocher contient une valeur vraie ou fausse; et coder en conséquence.
Voici le code complet modifié:
editor.windowManager.open( {
title: 'Choose which Items',
body: [
{
type: 'checkbox',
name: 'title',
text: 'Your title',
classes: 'what'
},
{
type: 'checkbox',
name: 'lol',
text: 'Your title',
classes: 'what'
}
],
onsubmit: function( e ) {
// Set var for sending back to editor
send_to_editor = '';
// Check first checkbox
if(e.data.title === true) {
send_to_editor += 'whatever value for true title';
}
// Check second checkbox
if(e.data.lol === true) {
send_to_editor += 'another value for true lol';
}
// Send back to editor
editor.insertContent(send_to_editor);
}
});
Vous voudrez probablement ajuster la variable send_to_editor
à vos besoins.