多场的单选按钮选择

时间:2014-10-21 09:50:38

标签: cq5 aem

我需要在标签中使用一个标识符,以便作者可以指定在页面加载时打开哪个标签下面是我的dialog.xml。

<items jcr:primaryType="cq:WidgetCollection">
                    <typeconfigs
                            jcr:primaryType="cq:Widget"
                            fieldLabel="Accordion"
                            name="./options"
                            xtype="customconfigmultifield">
                        <fieldConfigs jcr:primaryType="cq:WidgetCollection">
                            <option
                                    jcr:primaryType="cq:Widget"
                                    hidden="{Boolean}true"
                                    name="option_name"
                                    xtype="textfield"/>
                            <optionval
                                    jcr:primaryType="cq:Widget"
                                    allowBlank="{Boolean}false"
                                    fieldLabel="Title"
                                    maxLength="{Long}60"
                                    name="optionval"
                                    xtype="textfield"/>
                            <openaccordion
                                    jcr:primaryType="cq:Widget"
                                    name="selectaccordion"
                                    type="radio"
                                    xtype="selection">
                                <options jcr:primaryType="cq:WidgetCollection">
                                    <one
                                            jcr:primaryType="nt:unstructured"
                                            text="Open at Page Load"
                                            value="in"/>
                                </options>
                            </openaccordion>
                        </fieldConfigs>
                        <limit
                                jcr:primaryType="nt:unstructured"
                                maxVal="{Long}15"/>
                    </typeconfigs>
                </items>

但是现在我没有得到单选按钮的行为,这意味着我可以勾选我通过对话框添加的每个标签内的所有单选按钮。任何想法如何使切换成为可能。谢谢 enter image description here

2 个答案:

答案 0 :(得分:0)

当前结构中定义的单选按钮需要两个选项,并且字段的值将在两个选项之间切换。如果您只想显示一个选项,我建议使用{{1} }。

我已经尝试回答您的问题,假设您决定继续使用复选框(有两个状态checkboxtrue)。如果您决定添加第二个单选按钮,则可以将true和false的值更改为您定义的值; (其中一个是false

您正在寻找的是一组自定义侦听器

i)遍历每个多字段项,检查当前点击的多字段项的in值。

ii)将当前多字段项目设置为<openAccordion>

iii)为所有其他多字段项设置true<openAccordion>的值。

您需要的事件是false

验证属性设置正确后,您需要的是另一个在selectionchanged事件上触发的侦听器,它会查找值为loadcontent的多字段项{{1并显示该选项卡,隐藏其余部分。

顺便说一下,在我看来,你可能想要重构你的对话,这与@Mathew在评论中发布的内容类似。

答案 1 :(得分:0)

<items jcr:primaryType="nt:unstructured">
                                    <tabs
                                        jcr:primaryType="nt:unstructured"
                                        sling:resourceType="granite/ui/components/coral/foundation/form/multifield"
                                        composite="{Boolean}true">
                                        <field
                                            jcr:primaryType="nt:unstructured"
                                            sling:resourceType="granite/ui/components/coral/foundation/container"
                                            name="./options">
                                            <items jcr:primaryType="nt:unstructured">
                                                <wrapper
                                                    jcr:primaryType="nt:unstructured"
                                                    jcr:title="eon-feh-service-po.components.siteadmin.question.v1.dialog.tab.general.answeroptions.multifieldexpand"
                                                    sling:resourceType="granite/ui/components/foundation/container">
                                                    <layout
                                                        jcr:primaryType="nt:unstructured"
                                                        sling:resourceType="granite/ui/components/foundation/layouts/collapsible"/>
                                                    <items jcr:primaryType="nt:unstructured">
<isDropoutOpt
                                                            jcr:primaryType="nt:unstructured"
                                                            sling:resourceType="granite/ui/components/coral/foundation/form/radiogroup"
                                                            name="./isDropoutOpt"
                                                            renderReadOnly="{Boolean}true"
                                                            text="Option selection leads to dropdown?">
                                                            <items jcr:primaryType="nt:unstructured">
                                                                <radioYes
                                                                    jcr:primaryType="nt:unstructured"
                                                                    sling:resourceType="granite/ui/components/coral/foundation/form/radio"
                                                                    text="YES"
                                                                    value="yes"/>
                                                                <radioNo
                                                                    jcr:primaryType="nt:unstructured"
                                                                    sling:resourceType="granite/ui/components/coral/foundation/form/radio"
                                                                    text="NO"
                                                                   value="no"/>
                                                            </items>
                                                        </isDropoutOpt>