Randomly select one answer based on the selected answers in a multiple question that is not required.
//surveyscripting.com
//conjoin is a single question
//q1 is a multiple question
function assignArray(ans, num)
{
for (var ab = 0; ab <= 2; ++ab )
{
if (!ans[ab] || !IsNumeric(ans[ab])) {
ans[ab] = num;
break;
}
}
}
function conjoint()
{
f('conjoint').set(null); //for testing purposes only
var counter : int = 0;
var ans = new Array();
var form = f('conjoint');
var answerCode;
if (f('Q1')[3].toBoolean())
{
answerCode = 1;
assignArray(ans, answerCode);
counter++;
}
if (f('Q1')[2].toBoolean())
{
answerCode = 2;
assignArray(ans, answerCode);
counter++;
}
if (f('Q1')[5].toBoolean()) {
answerCode = 3;
assignArray(ans, answerCode);
counter++;
}
if (counter == 1) //if we have only 1 choice selected
{
f('conjoint').set(answerCode);
}
else if (counter > 1) //if we have more than 1 choice selected
{
var randomNumber1 : float = Math.random()*ans.length;
var randomIndex1 : int = Math.floor(randomNumber1);
var code1 = ans[randomIndex1];
form.set(code1);
}
else if (!f('conjoint').toBoolean()) //if we have no choices selected
{
var precodes = form.domainValues();
var randomNumber : float = Math.random()*precodes.length;
var randomIndex : int = Math.floor(randomNumber);
var code = precodes[randomIndex];
form.set(code);
}
}