2016-04-25 41 views
0

我正在使用与Magento捆绑在一起的ExtJs在检查节点后禁用行中的类别节点。为什么在ExtJs中禁用节点会使复选框仍然可用?

我可以从相同'等级'禁用节点,但复选框输入仍然可用来检查它们。

这是我到目前为止的代码:

tree.on('check', function(node) { 
    if(node.attributes.checked) { 
     categoryAdd(node.id); 
     //disable nodes except checked Node 
     for (var i = 0; i < node.parentNode.childNodes.length; i++) { 
      var actualNode = node.parentNode.childNodes[i]; 
      if (!actualNode.attributes.checked) { 
       actualNode.disable(); 
      } 
     } 
    } else { 
     categoryRemove(node.id); 
     //enable all nodes 
     for (var i = 0; i < node.parentNode.childNodes.length; i++) { 
      var actualNode = node.parentNode.childNodes[i]; 
      actualNode.enable(); 
     } 
    } 
    varienElementMethods.setHasChanges(node.getUI().checkbox); 
}, tree); 

这是一个捕捉到理解这段代码做什么。 enter image description here

+0

请您做一个小提琴?当我点击图片时,没有任何反应。 – Alexander

回答

0

要禁用或设置输入到只读模式,你应该使用DomQuery和设置属性到每个输入:

var readonly = true; 
var checkBoxes = Ext.DomQuery.select("DIV[@id='" + myTreeid + "']")[0].getElementsByTagName("input"); 
Ext.each(checkBoxes, function(cb){ 
    cb.setAttribute('disabled', readonly); 
}); 
相关问题