jsTree复选框插件错误

时间:2010-10-21 21:59:32

标签: jquery plugins checkbox jstree

我有一个带有复选框的jsTree,显示正常。我可以打开 并关闭节点,选中并取消选中复选框等

当我尝试获取所有节点时,问题就出现了 检查。下面我列出了我尝试过的所有方法以及错误 我尝试每一个时得到的消息。

$.tree.plugin.checkbox.get_checked($.tree.reference("#smuDomains"));
$.tree is undefined

$.jstree.plugin.checkbox.get_checked($.jstree.reference("#smuDomains"));
$.jstree.plugin.checkbox is undefined

$.tree.plugins.checkbox.get_checked($.tree.reference("#smuDomains"));
$.tree is undefined

$.jstree.plugins.checkbox.get_checked($.jstree.reference("#smuDomains"));
$.jstree.plugins is undefined

第二个($ .jstree.plugin.checkbox)似乎得到了 最接近工作,但它似乎不喜欢“复选框” 参考。应该是check_box还是其他什么?

这是我用来初始化树的代码:

$.jstree._themes = "../script/css/jstree/themes/";
$("#smuDomains").jstree({
    core : {}, 
    themes : {
        theme : "classic",
        dots : true,
        icons : true, 
        url : false
    },  
    json_data : {
        ajax : {
            url : "[the url]",
            datatype : "json",
            data : function(n) {
                return { id : n.attr ? n.attr("id") : 0 };
            },
            plugins : [ "themes", "json_data", "ui", "checkbox"]
        }); 
    });

4 个答案:

答案 0 :(得分:3)

我正在使用此代码在提交表单之前获取复选框:

jQuery('#myForm').submit(function() {
    jQuery('#mytree .jstree-checked').each(function () {
        var node = jQuery(this);
        var id = node.attr('id');
        var node_parent = node.parents('li:eq(0)');
        var pid = node_parent.attr('id');

        jQuery("<input>").attr("type", "hidden").attr("name", "treenode").val(id).appendTo("#mytree");
    });
});

答案 1 :(得分:1)

$( '#树')。jstree( 'get_checked')

答案 2 :(得分:0)

get_checked的一个问题是它将停在已检查的父节点上。

我们最终选择了这样的事情:

$('#idOfDivContainingTree .jstree-checked')

这有可能与jsTree的未来版本无关,因为它取决于实现

答案 3 :(得分:0)

你可以:

checked_nodes = $(“#smuDomains”)。jstree(“get_checked”,null,true);

$。each(checked_nodes,function(k,n){

node = $(n);
alert("name: "+node.attr("name")); //show each one of the nodes names

});

如果您只想要所选节点,则可以:

selected_nodes = $(“#smuDomains”)。jstree(“get_selected”,null,true);

希望有所帮助