Как получить доступ к метке выбранного элемента ответа в ответе Movilizer

На экране ввода текста (тип 5) у меня есть выпадающий элемент ввода (тип ответа 6) с несколькими элементами ответа. В отпуске ОК я хочу сохранить метку выбранного элемента ответа в локальной переменной. Вызов getAnswerData дает мне вместо этого клиентский ключ элемента ответа. Как получить доступ к метке вместо этого?

1 ответ

Решение

Что вы можете сделать, это использовать getAnswerValue в onLeaveOkPersistAssignment и выделить это значение в новой локальной переменной, например, $local:selectedItem. Таким образом, clientKey будет сохранен в этой переменной. На следующем или последующем экране вы можете использовать этот clientKey для доступа к правильному значению массива pos.

Пример: изначально ваш вопрос мог выглядеть так:

question key="q0" type="5" title="">
            <answer key="q0a0" nextQuestionKey="q1" dummyAnswer="true" attributeType="6">
                <item clientKey="0" dummyAnswerItem="true" />
                <text/>
            </answer>
            <onEnterAssignment>
$local:myArray = 
{
   0:'Product 1';
   1:'Product 2';
   2:'Product 3';
};

addAnswer($answer:'q0a0', null, 'Dropdown List');
for(items:$local:myArray)
{
   addAnswerItem($answer:'q0a0', null, '0', items, $local:myArray[items]);
}
            </onEnterAssignment> 

Этот пример содержит dummyAnswer(key=q0a0) и dummyAnswerItem, в onEnterAssignment, который вы вызываете с использованием addAnswer() и выделяете элементы ответа с использованием addAnswerItem. Теперь в onLeaveOkPersistAssignment этого ответа вы используете getAnswerValue(), при использовании getAnswerValue вы назначаете clientKey для локальной переменной.

<onLeaveOkPersistAssignment>
   $local:selectedItem = getAnswerValue($answer:'q0a0');
</onLeaveOkPersistAssignment>

Теперь вы можете сделать это на том же экране при использовании changeEvents или на следующем экране:

<question key="q1" type="0" title="">
        <answer key="q1a0" nextQuestionKey="END" dummyAnswer="true"/>
            <onEnterAssignment>
               addAnswer($answer:'q1a0', null, $local:myArray[$local:selectedItem]);
           </onEnterAssignment> 
</question>

Это позволяет распечатать этикетку выбранного элемента на следующем экране.

Другие вопросы по тегам