Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Behaviour : Checking 'None' option , all other checked options should be unchecked

nallu October 9, 2018

Hi,

I have created a 'multi select checkboxes' custom field 5 option including 'None'.

It is a single field with multiple checkboxes as options.

 Screen Shot 2018-10-09 at 7.39.00 PM.png

 

I am trying to write a behaviour script for that field such way that if 'None' option is checked, then all other selected option will be unchecked by automatically. Also, 'None' will be unchecked by selecting any other option.

 

Here is my code,

def gatingMechanismField = getFieldById(getFieldChanged()) // Getting Gating Mechanism field object
def gatingMechanismValue = gatingMechanismField.getFormValue(); // Getting gating mechanism values


if(gatingMechanismValue == '13405' )
{
gatingMechanismField.setFormValue('13405')
}
else
{
List list = gatingMechanismValue;

if(list.contains(13405))
{
list.remove(13405);
gatingMechanismField.setFormValue(list)
}
}

 

It doesn't work. 

Observation: 

- getFormValue() return's value of the option (say: 13405) as a string when 'None' is chosen

- If we choose more than one option , it returns array list (ex: [13405, 13400. 13401])

 

 

Can someone please help me on this.

 

 

1 answer

Suggest an answer

Log in or Sign up to answer
0 votes
Daniel Yelamos [Adaptavist]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
October 16, 2018

Hi Nallu.

I've done some minor modifications to your code, where you had a few dangerous statements that could lead to exceptions. Also, if I'm not mistaken, the value isn't a long, it's a String.

Try this:

def gatingMechanismField = getFieldById(getFieldChanged()) // Getting Gating Mechanism field object
def gatingMechanismValue = gatingMechanismField.getFormValue() // Getting gating mechanism values

if(gatingMechanismValue instanceof List) {
def list = gatingMechanismValue as List
if(list.contains('13405')) {
list.remove('13405')
gatingMechanismField.setFormValue(list)
}
} else {
gatingMechanismField.setFormValue(['13405'])
}

Cheers:

DYelamos

Daniel Yelamos [Adaptavist]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
October 16, 2018

Btw I could be wrong about the ids being strings, if I am wrong, substitute all of the 

'13405'

for

13405
TAGS
AUG Leaders

Atlassian Community Events