Have an idea?

Visit Sawtooth Software Feedback to share your ideas on how we can improve our products.

Mutual exclusive in radio box type of grid

Hi I  have designed a grid with radio type with 4 columns such that column 1 is mutual exclusive as this is a col wise question i have written the following below code :

if(InputObj.id == "[% QuestionName() %]_r1_1")
                        {                        
                            if(a == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r2");
                                }
                            if(b == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r3");
                                }
                            if(c == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r4");
                                }
                            if(d == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r5");
                                }
                            if(e == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r6");
                                }
                        }
                    if(InputObj.id == "[% QuestionName() %]_r2_1")
                        {                        
                            if(b == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r3");
                                }
                            if(f == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r1");
                                }
                            if(c == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r4");
                                }
                            if(d == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r5");
                                }
                            if(e == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r6");
                                }
                        }
                    if(InputObj.id == "[% QuestionName() %]_r3_1")
                        {                            
                            if(a == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r2");
                                }
                            if(f == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r1");
                                }
                            if(c == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r4");
                                }
                            if(d == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r5");
                                }
                            if(e == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r6");
                                }
                        }
                    if(InputObj.id == "[% QuestionName() %]_r4_1")
                        {                        
                            if(a == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r2");
                                }
                            if(b == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r3");
                                }
                            if(f == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r1");
                                }
                            if(d == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r5");
                                }
                            if(e == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r6");
                                }
                        }
                    if(InputObj.id == "[% QuestionName() %]_r5_1")
                        {                            
                            if(a == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r2");
                                }
                            if(b == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r3");
                                }
                            if(c == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r4");
                                }
                            if(f == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r1");
                                }
                            if(e == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r6");
                                }
                        }
                    if(InputObj.id == "[% QuestionName() %]_r6_1")
                        {                    
                            if(a == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r2");
                                }
                            if(b == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r3");
                                }
                            if(c == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r4");
                                }
                            if(d == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r5");
                                }
                            if(f == 1)
                                {
                                    SSI_RadioReset("[% QuestionName() %]_r1");
                                }
                        }



In order simply the above is there any fucntions / methods that i can follow
asked Apr 6, 2017 by sandeepkapalawai Bronze (1,465 points)

1 Answer

0 votes
Loops can be very helpful when doing operations like this.  I would use nested for loops, one for the outer if statements and one for the inner if statements.  This is the same code in ten lines:

var arr = [f, a, b, c, d, e];
for (var row = 1; row <= 6; row++) {
    if (InputObj.id == '[% QuestionName() %]_r' + row + '_1') {
        for (var i = 1; i <= 6; i++) {
            if (i != row && arr[i - 1] == 1) {
                SSI_RadioReset('[% QuestionName() %]_r' + i);
            }
        }
    }
}


Line 2 iterates through all the rows of the grid, so lines 3-9 are performed for row = 1, row = 2, etc.

Line 4 iterates through the six values, so lines 5-7 are performed for f, a, b, c, d, and e.

Line 5 is your internal if code, but also uses "i != row" to skip whichever of the six values isn't to be ran.
answered Apr 6, 2017 by Zachary Platinum Sawtooth Software, Inc. (75,550 points)
...