i have a form with a number of checkboxes (let’s call them A, B, and C).
I am looking for a script which will enable a fourth checkbox (checkbox D) to be turned on if any and all of checkboxes A, B, or C are checked. And also turned back off if checkboxes A, B, or C are subsequently unchecked.
seems to be a deceptively simple task.
thank you so much in advance.
Solved! Go to Solution.
Views
Replies
Total Likes
I got it.
As the checkboxes were in a table, I had to drill down a little farther. The name of the object alone didn't work.
Also, I didn't explain it particularly well the first time. I needed any combination of checkboxes A through C to create a positive result in checkbox D.
I was able to modify the string slightly and it worked perfectly.
if(Page2.Table3Sec1.Row2.cb16.rawValue == "1" | Page2.Table3Sec1.Row8.cb26.rawValue == "1" | Page2.Table3Sec1.Row10.cb62.rawValue == "1") //if cb16 OR cb26 OR cb62 is checked, check cbNV3
{
Page5.Table4Sec3_1.Table4Sec3_1_Row3.cbNV3.rawValue = "1";
}
if(Page2.Table3Sec1.Row2.cb16.rawValue == "0" & Page2.Table3Sec1.Row8.cb26.rawValue == "0" & Page2.Table3Sec1.Row10.cb62.rawValue == "0") //if cb16 OR cb26 OR cb62 is unchecked, uncheck cbNV3
{
Page5.Table4Sec3_1.Table4Sec3_1_Row3.cbNV3.rawValue = "0";
}
I cannot thank you enough.
Views
Replies
Total Likes
Hi originalien,
In the change event (javascript) for the A, B and C checkboxes add the code:
if(CheckBoxA.rawValue == "1" & CheckBoxB.rawValue == "1" & CheckBoxC.rawValue == "1") //if A, B and C are checked. Check D
{
CheckBoxD.rawValue = "1";
}
if(CheckBoxA.rawValue == "0" | CheckBoxB.rawValue == "0" | CheckBoxC.rawValue == "0") //if A, B OR C are unchecked, uncheck D
{
CheckBoxD.rawValue = "0";
}
D is checked when all others are checked
If any of the A, B or C boxes are not checked. D is unchecked.
Views
Replies
Total Likes
First and foremost, thank you a great deal for your prompt response.
Tantalizingly close.
Per request, I've utilized the script in the checkboxes (changed the names, of course) to no avail. A couple of questions:
I tested your script in a brand new one page document. It worked, as advertised. But, in my form the checkboxes appear on different pages. AND they appear within a table. Does that make it hairier?
Also, I don't think I explained it appropriately. In your script, all three checkboxes have to be checked in order to produce a positive result in the fourth checkbox. However, I want any combination of those three to produce a positive result. I tried using the OR string below to no avail.
What am I doing wrong?
if(cb16.rawValue == "1" | cb26.rawValue == "1" | cb62.rawValue == "1") //if cb16 OR cb26 OR cb62 is checked, check cbNV3
{
cbNV3.rawValue = "1";
}if(cb16.rawValue == "0" | cb26.rawValue == "0" | cb62.rawValue == "0") //if cb16 OR cb26 OR cb62 is unchecked, uncheck cbNV3
{
cbNV3.rawValue = "0";
}
(BTW... did I say thank you for the prompt response? I can't tell you how helpful this is)
Views
Replies
Total Likes
Standby... by jove, I think I've got it.
(Yes... it does matter that it's inside a table... I wasn't specifying the table AND the object name)
Views
Replies
Total Likes
I got it.
As the checkboxes were in a table, I had to drill down a little farther. The name of the object alone didn't work.
Also, I didn't explain it particularly well the first time. I needed any combination of checkboxes A through C to create a positive result in checkbox D.
I was able to modify the string slightly and it worked perfectly.
if(Page2.Table3Sec1.Row2.cb16.rawValue == "1" | Page2.Table3Sec1.Row8.cb26.rawValue == "1" | Page2.Table3Sec1.Row10.cb62.rawValue == "1") //if cb16 OR cb26 OR cb62 is checked, check cbNV3
{
Page5.Table4Sec3_1.Table4Sec3_1_Row3.cbNV3.rawValue = "1";
}
if(Page2.Table3Sec1.Row2.cb16.rawValue == "0" & Page2.Table3Sec1.Row8.cb26.rawValue == "0" & Page2.Table3Sec1.Row10.cb62.rawValue == "0") //if cb16 OR cb26 OR cb62 is unchecked, uncheck cbNV3
{
Page5.Table4Sec3_1.Table4Sec3_1_Row3.cbNV3.rawValue = "0";
}
I cannot thank you enough.
Views
Replies
Total Likes
Good job in figuring it out.
You can also reference an object by using this.resolveNode. Using this, the form will search from top down for the first instance that matches. I have found there are times where a code isn't working for me and when i add the code it then works. Usually happens when working in a table. I usually just resolveNodes anyway now days just to save problems later. It isnt always required and depends on the size of your form.
eg: Page5.Table4Sec3_1.Table4Sec3_1_Row3.cbNV3.rawValue = "1"; would become
this.resolveNode("Page5.Table4Sec3_1.Table4Sec3_1_Row3.cbNV3").rawValue = "1";
Well done too on your commenting, you can never have too many comments. Sometimes i need to go back to a form months later and its great that i know what it does without having to browse the code to work it out.
Views
Replies
Total Likes