ID for a field in multified

Avatar

Avatar

Shaheena_Sheikh

Avatar

Shaheena_Sheikh

Shaheena_Sheikh

16-03-2021

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?

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar

Rohit_Utreja

Avatar

Rohit_Utreja

Rohit_Utreja

16-03-2021

@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

 

Answers (2)

Answers (2)

Avatar

Avatar

Anudeep_Garnepudi

MVP

Avatar

Anudeep_Garnepudi

MVP

Anudeep_Garnepudi
MVP

16-03-2021

@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());
});

 

Avatar

Avatar

KiranVedantam1992

Avatar

KiranVedantam1992

KiranVedantam1992

16-03-2021

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.