1 pièce(s) jointe(s)
treeview(dynatree) decoche parent
Bonjour,
J'ai fait un treeview avec des checbox (dynatree.js) qui se trouve dans un <form>. Pour cela, j'ai mis des input type='checkbox' aux différents nœuds pour qu'a chaque fois que je clique sur un élément la checkbox prend la même valeur et au moment de l'envoie du formulaire je récupère les bon éléments.(l'input sera en display:none quand tout fonctionnera) Jusqu'ici tout fonctionne.
Lorsque, je coche un nœud qui est un enfant d'un autre, le nœud parent "réagit" selon si tous les enfants sont coché ou non. là j'arrive à le faire fonctionner aussi sur les inputs.
Mon problème est le suivant:
Lorsque je décoche un nœud enfant, l'input du parent reste coché.
voila mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
<script type="text/javascript">
$(function(){
$("#tree").dynatree({
//Tree parameters
persist: true,
checkbox: true,
selectMode: 3,
activeVisible: true,
// Un/check real checkboxes recursively after selection
onSelect: function(select, dtnode) {
$("#chb-"+dtnode.data.key).attr("checked",select);//input checkbox correspondand au domaine coché/decoche
$.map($("#tree").dynatree("getTree").getSelectedNodes(),
function(dtnode){
$("#chb-"+dtnode.data.key).attr("checked",true);
});
}
});
// Update real checkboxes according to selections
$.map($("#tree").dynatree("getTree").getSelectedNodes(),
function(dtnode){
$("#chb-"+dtnode.data.key).attr("checked",true);
});
});
</script> |
je joins une capture d’écran pour que cela soit plus compréhensible:
Comme vous pouvez le voir le nœud CA T n'est plus coché mais le parent Cap son input l'est encore.
J'ai essayé de partir sur le même modèle que getSelectedNodes
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
getSelectedNodes: function(stopOnParents) {
var nodeList = [];
this.tnRoot.visit(function(node){
if( node.bSelected ) {
nodeList.push(node);
if( stopOnParents === true ){
return "skip"; // stop processing this branch
}
}
});
return nodeList;
}, |
pour le cas ou on décoche mais je n'y suis pas arrivé.
merci d'avance pour votre aide.
chris