私の理解したところでは、TinyMCEチェックボックスのチェックボックスはtrueまたはfalseのみを返します。これは正しいです?
チェックボックスリストを取得する方法はありますか?そしてチェックされているチェックボックスリスト内のすべてのアイテムの値はeditor.insertContent()
メソッドを通して投稿に挿入されますか?
あるいは、for
ループを使って、これらのそれぞれがチェックされているかどうかをチェックし、チェックされている場合は値を取得しますか
(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>');
}
});
}
});
});
})();
まず、正しいオブジェクト名を使用していることを確認してください。チェックボックスにlabel
を使用する代わりに。代わりにtext
を使用してください。 ( TinyMCEチェックボックスの構文 )
onsubmit()
関数を使うとき。フォームからの情報は関数に渡されます。そのため、関数の最初の引数を使用してフォームの値を確認できます。
したがって、最初のチェックボックスの値はe.data.title
になります。 2番目のチェックボックスはe.data.lol
です。 form要素のname
はe.data.
オブジェクトのキーになります。
さて、onsubmit()
関数で。各チェックボックスがtrueまたはfalseの値を保持するかどうかをテストできます。それに応じてコーディングします。
これが修正されたコード全体です。
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);
}
});
あなたはおそらくあなたのニーズに合うようにsend_to_editor
変数を調整したくなるでしょう。