2016-04-25 28 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); 
}); 
相關問題