1

我设计了我的 CQ5 对话框,如下图所示。我必须禁用图像中突出显示的复选框选项。

在此处输入图像描述

而 dialog.xml 就像

<stewartOwned jcr:primaryType="cq:Widget"
  defaultValue="false" fieldLabel="Stewart Owned"
  inputValue="false" name="./stewartOwned" type="checkbox"
  xtype="selection" layout="hbox">
    <options jcr:primaryType="cq:WidgetCollection">
        <option1 jcr:primaryType="nt:unstructured" text=""
          value="stewartOwned" />
        <option2 jcr:primaryType="nt:unstructured" text=""
          value="ShowInAdvanced" />
    </options>
    <optionsConfig jcr:primaryType="nt:unstructured"
      width="150" />
</stewartOwned>
<independent jcr:primaryType="cq:Widget"
  defaultValue="false" fieldLabel="Independent" inputValue="false"
  name="./independent" type="checkbox" xtype="selection"
  layout="hbox">
    <options jcr:primaryType="cq:WidgetCollection">
        <option1 jcr:primaryType="nt:unstructured" text=""
          value="I" />
        <option2 jcr:primaryType="nt:unstructured" text=""
          value="ShowInAdvanced" />
    </options>
    <optionsConfig jcr:primaryType="nt:unstructured"
      width="150" />
</independent>

我尝试了以下解决方案来通过 id 禁用,但它不可行,因为 id 是自动生成的,你永远不知道在下一个会话中会生成什么 id。

listeners jcr:primaryType="nt:unstructured"
    loadcontent="function(dialog) { 
             CQ.Ext.getDom('ext-comp-1568').disabled = 'disabled';
             CQ.Ext.getDom('ext-comp-1573').disabled = 'disabled';
    }" />

有人可以建议我如何禁用 dialog.xml 中突出显示的复选框吗?

4

1 回答 1

2

经过大量研究和阅读 CQ5 文档后,我设法找到了以下解决方案。

var nameField = 
dialog.getField('./name').getEl().child('input[value*=ShowInAdvanced]').id;
CQ.Ext.getDom(nameField).disabled = 'disabled';
于 2019-05-03T09:37:55.413 回答