Confirm if all options in multi-select yes/no question has been answered before answering the next question which is within the roster

Hi SurSol Team,

I need to confirm if all options in multi-select yes/no question has been answered before I answer the next question which is within a roster. The details are as follows;
Q1 - Multiselect Yes/No question with 6 categories
Q1_roster - Roster sourced from Q1 for each category answered ‘Yes’
Q2 - Single select question within the Q1_roster
I need to validate that all the categories in Q1 has been answered either yes or no before Q2 is answered.

Thank you for the help in advance!
Best,
Shafeeu

Here’s some pseudo-code for the validation:

my_yes_no_var.Missing.Length == 0

See this article for more.

Personally, I wish multi-select yes/no were not counted as answered until there were a yes or no answer for each item.

However, the code above will issue an error until all items are answered.

That means that the Q2 question should use the above expression as an enabling condition. (rather than Q1 using that expression as a validation condition).

See also the last paragraph of Mandatory (required) questions

Thank you arthur for your response. It doesn’t quite solve the problem for me. I need the check to be triggered only when question 2 is answered. Q2 is a single select question within the roster. I should have emphasized on this earlier.

Thanks,
Shafeeu

Maybe you could add a validation to Q2 that looks something like this (again, in pseudo-code):

// once Q2 is answered
IsAnswered(Q2) ?
// checkw whether my_yes_no_var has all items answered
my_yes_no_var.Missing.Length == 0 :
// otherwise, OK
true

This works well. But I prefer the error message to be displayed on Q1 instead of Q2, since that is where the unanswered option is.

Big thanks for the help!

Best,
Shafeeu

You can’t have that: In the worst case no option is answered and hence the validation is not used at all, hence no error message.

You can put a static text with validation after question Q1, which is what many people resort to.

Thanks for suggesting the workaround and for always being so helpful.

Best,
Shafeeu