如何在CQ5 AEM中的dialog.xml中禁用checkboxes的选项?

时间:2019-05-02 11:15:34

标签: adobe aem cq5 experience-manager

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

enter image description here

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中突出显示的复选框吗?

1 个答案:

答案 0 :(得分:0)

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

var nameField = 
dialog.getField('./name').getEl().child('input[value*=ShowInAdvanced]').id;
CQ.Ext.getDom(nameField).disabled = 'disabled';