CKEditor +插件链接选择框

时间:2014-11-28 15:07:10

标签: javascript jquery json ckeditor

我正在编写一个CKEditor插件,并且已经了解了基础知识,即

CKEDITOR.dialog.add( 'addDocumentGroupDialog', function ( editor ) {

    return {
        title: 'Link to a document group',
        minWidth: 400,
        minHeight: 200,
        contents: [
            {
                id: 'tab-groups',
                label: 'Add Document Group Link',
                elements: [
                    {
                        type : "text",
                        id : "documentGroupTitle",
                        label : "Set a link label"
                    },
                    {
                            type : "select",
                            id : "documentGroup",
                            label : "Select a document group from the list to create a link",
                            items : window.documentGroups
                    }
                ]
            }
        ],
        onOk:function(){
            var dialog = this;

            groupId = dialog.getValueOf("tab-groups", "documentGroup");
            groupTitle = dialog.getValueOf("tab-groups", "documentGroupTitle");
            theDiv = document.createElement("div");
            anchor = document.createElement("a");
            anchor.setAttribute("href", "/documents.php?gid=" + groupId)
            anchor.innerHTML = groupTitle;
            theDiv.appendChild(anchor);
            editor.insertHtml(theDiv.innerHTML);
        }
    };

});

然而,我想要todo有一个选择,然后更新第二个选择。即级联。有没有人看过这个,或者得到一个例子,他们可以指出我的方向?

感谢您的帮助

詹姆斯

2 个答案:

答案 0 :(得分:2)

检查link dialog definition获取灵感。根据您选择的链接类型,显示不同的元素(实际上几乎就是您想要的)。

在第一个选择元素中定义onChange处理程序,然后使用dialog.getContentElement使用第二个select element执行任何操作。

答案 1 :(得分:2)

正如97ldave所提到的,jQuery.change()

$(document).ready(function() {

    $('#selectBox').change(function() {

        var value = $(this).val();

        if (typeof value == 'undefined' || value == '') {
            return; // Don't do anything when the active selection has a value of nothing.
        }

        // If something with a value is selected, do this
        alert(value);

    });

});