Использование флажков jstree в формах - PullRequest
3 голосов
/ 25 мая 2011

Извините за слегка двусмысленный заголовок.Моя проблема очень специфична (и, вероятно, это просто я новичок), я просто не знал, как объяснить это в заголовке.

В настоящее время я обновляю веб-страницу.На этой веб-странице есть 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" />" />

Это код кнопки.

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);
              }

, и это часть функции сериализации, которая запускается, когда пользовательнажимает кнопкуЧасть $(".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];
        }
    },

Согласно документации jstree, это должно создать флажки, которые работают в формах.Есть какие-нибудь идеи, как мне получить эти данные?Я пробовал var cb = $(".jstree-checkbox:checked"), который на самом деле ничего не делал, также я пытался работать с селектором дерева var areasCB = $("#tree");, но я не мог понять, что с ним делать.

Я почти уверенэто довольно простая проблема, но я все еще очень плохо знаком с jQuery и javascript в целом.

1 Ответ

5 голосов
/ 16 августа 2011

Вот один из способов получения проверенных узлов:

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