Fill drop down list with a calculated total

wilsonl28824783

23-06-2020

I have a calculated field that totals the difference between two numbers; is there a way to use that generated total and populate a drop down?

 

example: the calculation is 5; is there a way to populate a drop down list that would show 0,1,2,3,4,5?

I think some combination of a For loop and an array might do it, however, I am no good at script writing and I would really appreciate an example 😌

Accepted Solutions (1)

Accepted Solutions (1)

Answers (2)

Answers (2)

Nupur_Jain

MVP

02-07-2020

Hi @wilsonl28824783 

 

You can achieve your requirment using Jquery. Find the code snippet to dynamically add values to dropdown.

 

(function ($, $document) {
	"use strict";
	// Add granite:class='custom-dynamic-selection' on selection node on cq:dialog
	const SELECTION_SELECTOR = ".custom-dynamic-selection";

	$document.on("dialog-ready", function () {
		// Change this value after calculating it
		var dynamicLength = 5;
		populateDropdown(dynamicLength);
	});

	function populateDropdown(length) {
		var dynamicSelection = $(SELECTION_SELECTOR);
		if (dynamicSelection.length) {
			dynamicSelection[0].items.clear();
			for (var number = 1; number <= length; number++) {
				var selectItem = {};
				selectItem.content = {};
				selectItem.content.textContent = number;
				selectItem.value = number;
				dynamicSelection[0].items.add(selectItem);
			}
		}
	}

}(jQuery, jQuery(document)));

 

Add this js in "cq.authoring.dialog" clientlibs and add property granite:class on selection like this

Screenshot from 2020-07-02 12-56-12.png

 

Hope it helps!

Thanks,

Nupur