How to populate form dropdown with values depending on previous dropdown value? | Community
Skip to main content
jezwn
Level 5
Dec 27, 2019 3:09 PM UTC
Solved

How to populate form dropdown with values depending on previous dropdown value?

I've got this 3 dropdown fields, month, day and year. Upon selection of a specific month the day dropdown field should be populated with exactly the number of days for that particular month. Similiary it should be accountable for leap years as well. How to do that in AEM Forms?

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
jezwn
jezwnAccepted solution
Level 5
Feb 28, 2020 7:51 AM UTC

In the code editor for day use the following logic,

 

function getDates(numberOfDays) {
var dates = [];
var toDates;
for (var i = 1; i <= numberOfDays; i++)
{
if (i < 10) {
toDates = "0" + i + "=0" + i;
dates.push(toDates);
} else {
toDates = i + "=" + i;
dates.push(toDates);
}
}
return dates;
}

if (birthMonth.value == "January" || birthMonth.value == "March" || birthMonth.value == "May" || birthMonth.value == "July" || birthMonth.value == "August" || birthMonth.value == "October" || birthMonth.value == "December") {

this.items = getDates(31);
} else if (birthMonth.value == "February") {
this.items = getDates(29);
} else {
this.items = getDates(30);
}

2 replies

jezwn
jezwnAuthorAccepted solution
Level 5
Feb 28, 2020 7:51 AM UTC

In the code editor for day use the following logic,

 

function getDates(numberOfDays) {
var dates = [];
var toDates;
for (var i = 1; i <= numberOfDays; i++)
{
if (i < 10) {
toDates = "0" + i + "=0" + i;
dates.push(toDates);
} else {
toDates = i + "=" + i;
dates.push(toDates);
}
}
return dates;
}

if (birthMonth.value == "January" || birthMonth.value == "March" || birthMonth.value == "May" || birthMonth.value == "July" || birthMonth.value == "August" || birthMonth.value == "October" || birthMonth.value == "December") {

this.items = getDates(31);
} else if (birthMonth.value == "February") {
this.items = getDates(29);
} else {
this.items = getDates(30);
}

Translate
Mayank_Gandhi
Employee
Jan 6, 2020 6:45 AM UTC

why don't you use Date Picker component?

Translate