Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

Check if new item is added to the multifield

Avatar

Level 6

I want to call a JS function when a new item is added to the multifield. I have tried: 

$(".cq-dialog").find("coral3-Button coral3-Button--secondary").on("click", funcName);

doesn't call my function.

 

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

@Shaheena_Sheikh 

try the below code

$(document).on("dialog-ready", function(){
	$("coral-multifield").children("button[coral-multifield-add]").on("click", function() {
		//Logic
	});
});

 

View solution in original post

9 Replies

Avatar

Level 6

my func is getting triggered when i am opening the dialog. Not when i click on the Add button

Avatar

Community Advisor

Hi @Shaheena_Sheikh 

 

Please try the below code and it will work.

(function (document, $, ns) {
"use strict";

$(document).on("click", ".coral3-Button--secondary", function (e) {
e.stopPropagation();
e.preventDefault();
alert("Hi");
});

})(document, Granite.$, Granite.author);

 

 

Avatar

Level 6
this works but has a problem. The alert gets kicked even if i click on a dropdown, colorfield swatch (these are also within multifield items) etc. that should only get triggered for the click event of Add button

Avatar

Community Advisor

Hi @Shaheena_Sheikh 

 

Targeted only the button element below. Should work now.

 

(function (document, $, ns) {
"use strict";

$(document).on("click", "button[coral-multifield-add]", function (e) {
e.stopPropagation();
e.preventDefault();
alert("Hi");
});

})(document, Granite.$, Granite.author);

Avatar

Correct answer by
Community Advisor

@Shaheena_Sheikh 

try the below code

$(document).on("dialog-ready", function(){
	$("coral-multifield").children("button[coral-multifield-add]").on("click", function() {
		//Logic
	});
});

 

if i add a loop in place of login, the loop never works for the newly added item. $(".coral3-Multifield-item").each(function (index) {console.log("add item");})