在表单中使用jstree复选框

T.K*_*nta 3 jquery jquery-selectors jstree

对不起有点含糊不清的标题.我的问题非常具体(而且可能只是我是一个新手),我只是不知道如何在标题中解释它.

我目前正在升级网页.该网页有3个列表,其中包含项目,例如"设备"列表中有不同类型的汽车.每个项目都有一个复选框,用户检查他想要使用的复选框,然后按下一个按钮.然后他根据他的选择收到一份报告.

<input type="button" class="mapbutton"  onclick="company.view.reports.serialize(this);" 
                style="width:280px;font-size:1em" 
                value="<fmt:message key="owner.text.open_report" />" />
Run Code Online (Sandbox Code Playgroud)

这是按钮的代码.

serialize: function(what){
              var m = company.model.report;
              var strDev = 'devices=';
              var devicesCB = $(".devicesCB:checked");
              if (devicesCB.length > 0){
                  for (var i=0;i<devicesCB.length;i++) {
                     strDev += devicesCB[i].value + ',';
                  }
                  strDev = strDev.substring(0, strDev.length - 1);
              }
Run Code Online (Sandbox Code Playgroud)

这是用户按下按钮时触发的序列化函数的一部分.该$(".devicesCB:checked")部分是jQuery,并返回该类的所有选中复选框"devicesCB".这条线也是我问题的关键.

checkbox : {
        "real_checkboxes" : "true",
        "override_ui" : "true",
        "real_checkboxes_names" : function(n){
            console.log("As");
            return[("area"+n[0].id),n[0].id];
        }
    },
Run Code Online (Sandbox Code Playgroud)

根据jstree文档,这应该创建在表单中工作的复选框.有什么想法我会如何检索这些数据?我已经尝试了var cb = $(".jstree-checkbox:checked"),它没有真正做任何事情,我也试过使用树的选择器,var areasCB = $("#tree");但我无法弄清楚如何处理它.

我很确定这是一个相当简单的问题,但我对jQuery和javascript仍然很新.

Mbr*_*vda 5

以下是获取已检查节点的一种方法:

$("#my_tree").jstree("get_checked", null, false).each(function() {
    //do something
});
Run Code Online (Sandbox Code Playgroud)