Skip to main content
Inspiring
May 12, 2025
Answered

Looping Through Specific Array of Fields and Checking Box Based on Field Values

  • May 12, 2025
  • 1 reply
  • 760 views

I have an array of 30 fields "Price01 - Price30" and a checkbox. I am trying to loop through each field to see if it is greater than $100. If at least one of the 30 fields has a value greater than 100, I want the box to be checked. If not, then the box is unchecked.

So far I have the following validation script in each of the fields because checkboxes don't allow for validation scripts

var a = this.getField("Price01").valueAsString;
var b = this.getField("Price02").valueAsString;
var c = this.getField("Price03").valueAsString;
var d = this.getField("Price04").valueAsString;
var e = this.getField("Price05").valueAsString;

if (a >= "100" || b >= "100" || c >= "100" || d >= "100" || e >= "100")
{
		this.getField("TestBox").checkThisBox(0,event.value < 100 ? false : true);
    }


else {
    
	}
Correct answer try67

Use this code, then:

 

var checkboxField = this.getField("TestBox");
var checkField = false;
for (var i=1; i<=30; i++) {
	var num = (i < 10 ? "0" + i : i);
	var price = Number(this.getField("Price" + num).valueAsString);
	if (price>100) {checkField = true; break;}
}
checkboxField.checkThisBox(0, checkField);

1 reply

Nesa Nurani
Community Expert
Community Expert
May 12, 2025

Name your checkboxes "TestBox01 - TestBox30" then place this script as custom calculation script in one of the text fields (you can remove all other scripts):

for (var i=1; i<=30; i++) {
 var num = (i < 10 ? "0" + i : i);
 var priceField = Number(this.getField("Price" + num).valueAsString);
 var checkboxField = this.getField("TestBox" + num);

 checkboxField.checkThisBox(0, (priceField > 100)? true : false);}

 

MBChelsAuthor
Inspiring
May 12, 2025

Sorry.  Just to clarify, there is only one "TestBox" and 30 "Price" fields.

try67
Community Expert
try67Community ExpertCorrect answer
Community Expert
May 12, 2025

Use this code, then:

 

var checkboxField = this.getField("TestBox");
var checkField = false;
for (var i=1; i<=30; i++) {
	var num = (i < 10 ? "0" + i : i);
	var price = Number(this.getField("Price" + num).valueAsString);
	if (price>100) {checkField = true; break;}
}
checkboxField.checkThisBox(0, checkField);