web-dev-qa-db-ja.com

True/falseの代わりに値を返すTinyMCEチェックボックスを作る

私の理解したところでは、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>');
                        }
                    });
                }
        });
    });
})();
1
rand_user91

適切なオブジェクト名

まず、正しいオブジェクト名を使用していることを確認してください。チェックボックスにlabelを使用する代わりに。代わりにtextを使用してください。 ( TinyMCEチェックボックスの構文

オンサブミット:

onsubmit()関数を使うとき。フォームからの情報は関数に渡されます。そのため、関数の最初の引数を使用してフォームの値を確認できます。

したがって、最初のチェックボックスの値はe.data.titleになります。 2番目のチェックボックスはe.data.lolです。 form要素のnamee.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変数を調整したくなるでしょう。

2
josh