1

問題なく表示されるチェックボックス付きの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

2 番目のもの ($.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

4 に答える 4

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");
    });
});
于 2010-12-17T17:15:28.107 に答える
1

$('#tree').jstree('get_checked')

于 2011-09-05T21:01:51.410 に答える
0

get_checked の問題の 1 つは、チェックされた親ノードで停止することです。

最終的には次のようになりました。

$('#idOfDivContainingTree .jstree-checked')

これは実装に依存するため、将来のバージョンの jsTree では機能しないリスクがあります。

于 2010-10-28T02:39:28.723 に答える
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);

それが役に立てば幸い

于 2012-09-21T16:15:45.653 に答える