jstree select_limit无效。我想设置选择限制只选择3个节点

时间:2013-02-09 05:19:48

标签: javascript jstree

我的jstree功能在这里。
我已设置'select_limit' : 3,但无效。当我运行时,我能够选择3个以上的节点,但我需要选择不超过3个节点。

    j1("#utree_activity").jstree({
        "plugins": ["themes", "html_data", "ui", "crrm", "checkbox"],
        "html_data": {
            "ajax": {
                "url": urlGlobal + "jstrees/activitytree/",
                "asynchronous": "false",
                "data": function (n) {

                    return {
                        id: n.attr ? n.attr("id") : 0,
                        default_activities: default_activities
                    };
                },
                "success": function (gb) {

                },

            }
        },
        "ui": {
            "select_limit": 3,
        },

        "cookies": {
            cookie_options: {
                path: "/"
            }
        },

        "checkbox": {
            two_state: true,
            real_checkboxes: false
        }
    });

2 个答案:

答案 0 :(得分:8)

select_limit不会处理复选框,您必须滚动自己的before.jstree方法。

j1.bind("before.jstree", function (e, data) {
    if (data.func === "check_node") {
        if (j1.jstree('get_checked').length >= 1) {
            e.preventDefault();
            return false;                
        }
    }
});

请注意,此代码仅作为示例,并且不处理子节点

工作小提琴:http://jsfiddle.net/cfb9J/1/

答案 1 :(得分:0)

还有另一个选项缺失,可能需要添加ui模块,试试这个:

j1("#utree_activity").jstree({ 
"plugins" : ["html_data","ui"],

 //the rest of your code
});