2013-06-17 3 views
1

я использую кендо щий древовидный с флажкомкендо UI получить идентификатор флажка, когда бесконтрольно

я хочу идентификатор этого флажка, когда она становится бесконтрольно

это кендо UI код шахты

// var homogeneous contains data 

$("#treeview").kendoTreeView({ 
    checkboxes: { 
     checkChildren: false, 
     template:"# if(!item.hasChildren){# <input type='hidden' id='#=item.id#' parent_id='#=item.parent_id#' d_text='#=item.value#'/> <input type='checkbox' id_a='#= item.id #' name='c_#= item.id #' value='true' />#}else{# <div id='#=item.id#' style='display:none;' parent_id='#=item.parent_id#' d_text='#=item.value#'/> #}#", 

    }, 
    dataSource: homogeneous, 
    dataBound: ondata, 
    dataTextField: "value" 
}); 

function ondata() { 
    //alert("databound"); 
} 


// function that gathers IDs of checked nodes 
function checkedNodeIds(nodes, checkedNodes) { 
    //console.log(nodes); 
    for (var i = 0; i < nodes.length; i++) { 
     if (nodes[i].checked) { 
      checkedNodes.push(nodes[i].id); 
     } 

     if (nodes[i].hasChildren) { 
      checkedNodeIds(nodes[i].children.view(), checkedNodes); 
     } 
    } 
} 

// show checked node IDs on datasource change 
$("#treeview").data("kendoTreeView").dataSource.bind("change", function() { 
    var checkedNodes = [], 
     treeView = $("#treeview").data("kendoTreeView"), 
     message; 

    checkedNodeIds(treeView.dataSource.view(), checkedNodes); 
    if (checkedNodes.length > 0) { 
     message = "IDs of checked nodes: " + checkedNodes.join(","); 
    } else { 
     message = "No nodes checked."; 
    } 

    $("#result").html(message); 
}); 

в этом коде я не получаю идентификатор CheckBox, когда он снят, так что я попробовал этот Jquery код

$('input[type=checkbox]').click(function() { 
    if($(this).is(':checked')) { 
     alert('checked'); 
    } else { 
     alert('not checked'); 
    } 
}); 

этот код работает только в Js скрипку, но не в моем случае http://jsfiddle.net/NPUeL/

, если я использую этот код, то я могу получить число графа, но я не знаю, как использовать его

var treeview = $("[data-role=treeview]").data("kendoTreeView"); 
    treeview.dataSource.bind("change", function (e) { 
     if (e.field == "checked") { 
      console.log("Recorded Selected: " + $("[data-role=treeview] :checked").length); 
     } 
    }); 

что изменилось мне нужно сделать в источнике данных, поэтому я могу получить идентификатор благодарите adavance

ответ

1

Если вы хотите получить id вы можете сделать:

$('input[type=checkbox]').click(function (e) { 
    var li = $(e.target).closest("li"); 
    var id = $("input:hidden", li).attr("id"); 
    var node = treeView.dataSource.get(id); 
    if (node.checked) { 
     console.log('checked'); 
    } else { 
     console.log('not checked'); 
    } 
}); 

Что делать в обработчик событий:

  1. найти ближайший li элемент, который является узлом дерева, которое было щелкнули.
  2. id находится в элементе HTML input, который равен hidden (так я понял, что вы его сохранили).
  3. Получить товар с dataSource используя метод dataSource.get.

Смотрите ваш код изменен и работает here

0

я сделал небольшое изменение, и его в настоящее время работает

function ondata() { 
    $('input[type=checkbox]').click(function() { 
    if($(this).is(':checked')) { 
     alert('checked'); 
    } else { 
     alert('not checked'); 
    } 
    }); 
} 
Смежные вопросы