Expand my Community achievements bar.

Learn about Edge Delivery Services in upcoming GEM session
SOLVED

Add selected as true to dynamic dropdown

Avatar

Community Advisor

Hello All, I am trying to follow https://helpx.adobe.com/experience-manager/using/creating-touchui-dynamic.html and able to get the dynamic dropdown. However if I want to have a second dropdown value as selected I am unable to do so. Am I missing something?

 

I am trying following

DataSource ds = new SimpleDataSource(new TransformIterator(languages.keySet().iterator(), new Transformer() {
       public Object transform(Object o) {
           String language = (String) o;
           ValueMap vm = new ValueMapDecorator(new HashMap<String, Object>());
 
           vm.put("value", language);
           vm.put("text", languages.get(language));
//my custom
if(selctedLanguage==true) {
vm.put("selected", true);
}
 
           return new ValueMapResource(resolver, new ResourceMetadata(), "nt:unstructured", vm);
       }
   }));

. Still the drop down values show as top one selected. 

 

cc @arunpatidar I have looked at aem63app-repo/dynamic-dropdown.js at master · arunpatidar02/aem63app-repo · GitHub but I want to achieve this when I am populating the second dropdown via datasource. Using a ./hiddenproperty did not work for me...

Topics

Topics help categorize Community content and increase your ability to discover relevant content.

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

As mentioned in first comment I was able to achieve this by adding disabled=true for selected item. Thanks again to @arunpatidar for the great article

View solution in original post

5 Replies

Avatar

Community Advisor
I added vm.put("selected", true); vm.put("disabled", true); , in that case it seems to work. I get the expected view, just that the selected item will be disabled. But if I keep just vm.put("selected", true); then the selected value is not "selected"

Avatar

Employee

Once the select tag is created, you can read that document element using query selector, parse through its options and set the "selected" attribute to the second option.

 

Hope it helps !!

Avatar

Community Advisor
yeah, I think I tried that, but when we choose to open the dialog and we are within "$(document).on("dialog-ready", function () " the "dialog box" is not available and hence we are unable to query the saved/selected item or root itself. is

Avatar

Correct answer by
Community Advisor

As mentioned in first comment I was able to achieve this by adding disabled=true for selected item. Thanks again to @arunpatidar for the great article

Avatar

Community Advisor

Already added wha worked for me. This can be disregaded.