1

我正在使用带有复选框实现的 kendoUI 树视图。当我选择父复选框时,我可以检查所有子复选框。现在,当我选择父复选框时,我想获取所有孩子的文本值。我在树视图中使用模板进行复选框操作

$("#ProjectUsersTreeView [type=checkbox]").live('change', function (e) {                       var chkbox = $(this);
                        var parent = chkbox.parent();                            
    var pBox = $(parent).closest('.k-item').find(":checkbox");                               

                       if (this.checked || pBox.length>0) {
                           $(pBox).prop('checked',this.checked ? "checked": "")      
}
4

1 回答 1

0

我建议不要使用您的代码来检查孩子,而是使用 KendoUI 配置选项 checkChildren。

tree = $("#ProjectUsersTreeView").kendoTreeView({
            checkboxes:{
                checkChildren: true
            },
            ...
        }).data("kendoTreeView");

然后获取所有选定的文本使用:

$("#ProjectUsersTreeView [type=checkbox]").live('change', function (e) {
            var checked = $("input:checked", tree);
            $.each(checked, function(idx, elem) {
                console.log("text", tree.text(elem));
            })
        });

checkedinput从树中获取所有实际存在的元素checked并通过使用text方法获取它在控制台上显示其文本。

注意:意识到我已经定义tree$("#ProjectUsersTreeView").data("kendoTreeView")然后在change处理程序中使用它。

于 2012-11-12T08:05:48.177 回答