Expand my Community achievements bar.

Guidelines for the Responsible Use of Generative AI in the Experience Cloud Community.
SOLVED

How to set default value in a Touch UI select element?

Avatar

Level 2
I am trying to set the defaultValue in a Touch UI select dropdown. Setting "defaultValue" in dialog.xml works in Classic mode, but not in Touch. Here is the relevant snippet from my component's .content.xml <alignment jcr:primaryType="cq:Widget" sling:resourceType="granite/ui/components/foundation/form/select" fieldLabel="Alignment" name="./alignment" value="option2" defaultValue="option2"> <items jcr:primaryType="cq:WidgetCollection"> <topLeft jcr:primaryType="nt:unstructured" text="Option 1" value="option1"/> <topCenter jcr:primaryType="nt:unstructured" text="Option 2" value="option2"/> <topRight jcr:primaryType="nt:unstructured" text="Option3" value="option3"/> </items> </alignment>
1 Accepted Solution

Avatar

Correct answer by
Level 2

It seems that this is a bug with the granite select component (granite/ui/components/foundation/form/select).

The problem was also posted here, and never solved: http://help-forums.adobe.com/content/adobeforums/en/experience-manager-forum/adobe-experience-manage...

View solution in original post

14 Replies

Avatar

Level 10

defaultValue doesnt work in Touch UI.

If you want Option 2 be set as defaultValue. try using this 

 

  1. <alignment
  2. jcr:primaryType="cq:Widget"
  3. sling:resourceType="granite/ui/components/foundation/form/select"
  4. fieldLabel="Alignment"
  5. name="./alignment"
  6. value="option2"
  7. defaultValue="option2">
  8. <items jcr:primaryType="cq:WidgetCollection">
  9. <topLeft
  10. jcr:primaryType="nt:unstructured"
  11. text="Option 1"
  12. value="option1"/>
  13. <topCenter
  14. jcr:primaryType="nt:unstructured"
  15. text="Option 2"
  16. value="option2"
  17. selected="true"/>
  18. <topRight
  19. jcr:primaryType="nt:unstructured"
  20. text="Option3"
  21. value="option3"/>
  22. </items>
  23. </alignment>

Avatar

Level 1

selected="{Boolean}true"

It worked fine for touch ui in AEM 6.3 but didnot work when inplace upgrade was done to upgrade to 6.5. Please advise.

Avatar

Level 10

Basically, you need to add 'selected' property which takes a boolean for the option which you want. by default it will be 'false'

Avatar

Level 2

I've added selected="true" to the second value in the dropdown, but the first value is still selected by default.

<horizontal jcr:primaryType="cq:Widget" sling:resourceType="granite/ui/components/foundation/form/select" fieldLabel="Horizontal Alignment" name="./halign"> <items jcr:primaryType="cq:WidgetCollection"> <topLeft jcr:primaryType="nt:unstructured" text="Left" value="hleft"/> <topCenter jcr:primaryType="nt:unstructured" text="Center" value="hcenter" selected="true"/> <topRight jcr:primaryType="nt:unstructured" text="Right" value="hright"/> </items> </horizontal>

Avatar

Level 10

Have you added it as a String or boolean ?

Avatar

Level 10

if you are changing directly in the xml, it should be like

selected="{Boolean}true"

Avatar

Level 2

I am making the change directly in the component's .content.xml, but selected="{Boolean}true" hasn't worked either. It seems to always default to the first option.

Avatar

Correct answer by
Level 2

It seems that this is a bug with the granite select component (granite/ui/components/foundation/form/select).

The problem was also posted here, and never solved: http://help-forums.adobe.com/content/adobeforums/en/experience-manager-forum/adobe-experience-manage...

Avatar

Level 1

Andrew Bowles wrote...

I am making the change directly in the component's .content.xml, but selected="{Boolean}true" hasn't worked either. It seems to always default to the first option.

 


Did you get a solution for this ? selected = true (as a boolean property) doesnt work. If you have some other solution plz share.

Avatar

Level 1

I was never able to find a solution. selected="{Boolean}true" hasn't worked for me. 

Avatar

Level 1

Hi Loki,

selected boolean true doesnt work to set a property as a default . Can you please guide on a solution to this.

Avatar

Level 1

Hi,

Checked selected={Boolean}true. works fine in AEM 6.1 with SP2 installed.

 

Thanks,

Bhargav

Avatar

Level 1

Hi,

in order to make it work isn't enough to add 

selected="{Boolean}true" 
in the option you want as default, you have also to set

forceIgnoreFreshness="{Boolean}true"

in the select node itself.