Expand my Community achievements bar.

SOLVED

ID for a field in multified

Avatar

Level 6

I have a textfield within a multified. I need to fetch the ID for the textfield each item a new multified item is added. Since the textfield is within the multified I am not sure how can i set the granite:id to it. Any suggestion?

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

@Shaheena_Sheikh ,

 

You can try to iterate the textfield inside the multifield using clientlibs javascript.

These Ids will be generated by granite UI and can be iterated through the code.

 

Adding a sample code to fetch values from dialogs using JS.

 

https://github.com/viji13/aemlearnings/blob/master/clientlibs/script.js

 

View solution in original post

5 Replies

Avatar

Correct answer by
Community Advisor

@Shaheena_Sheikh ,

 

You can try to iterate the textfield inside the multifield using clientlibs javascript.

These Ids will be generated by granite UI and can be iterated through the code.

 

Adding a sample code to fetch values from dialogs using JS.

 

https://github.com/viji13/aemlearnings/blob/master/clientlibs/script.js

 

Avatar

Community Advisor

@Shaheena_Sheikh 

ID must be unique, if you have text field with id(granite:id) in side multifield, there will be multiple elements with same id. You will always get the first element.

So use class(granite:class) instead and get the last element(selector text-field-class:last) of that class when new item is added. 

Example:

Add class(granite:class) to id text field (here I am using id-text-field). Try below code to get each text field value inside multifield.

$(".coral3-Multifield-item").each(function( index ) {
	console.log($(this).find(".id-text-field").val());
});

 

so, if I have 4 multifield items how can i get the data for each textfield in each item?

Avatar

Community Advisor

Hi @Shaheena_Sheikh,

 

You can achieve this in two ways

  1. Writing BE event listeners who listen to the JCR level events and dynamically add an ID [property] as per your prescribed format to the node
  2. Write FE javascript code on the dialog level to dynamically add the ID whenever the text field is authored.

For more details on event listeners check my blog here

 

Hope this helps.

 

Thanks,

Kiran Vedantam.