2014-02-03 4 views
0

У меня есть форма Google с несколькими вопросами с несколькими вариантами ответов, которые имеют текстовые ответы. я могу цикл все вопросы в форме и получить текстовые значения ответа с помощью:Google Forms - индекс ответа множественного ответа

for(var i in headers) { 
    message += e.namedValues[headers[i]].toString() + "\n\n"; 
} 

Однако, я также хотел бы получить индекс каждого выбранного ответа, с тем чтобы обеспечить счет.

Просто чтобы быть ясно, - если у меня есть следующий вопрос множественного выбора в моей форме:

Какова скорость воздушной скорости порожнего ласточка?

С ответами являются:

  • европейский или африканский?

Если заявитель ответил «Европейский или африканский?» Я хотел бы получить индекс этого ответа, а именно номер 2.

Спасибо!

ответ

0

MultipleChoiceItem.getIndex() Способ по-прежнему получать индекс элемент вопроса с множественным выбором, а не выбранный индекс ответа с множественным выбором. Чтобы получить индекс выбранного выбора, используйте MultipleChoiceItem.getChoices(), затем пройдите через массив choices[], чтобы сравнить выбранный выбор с каждым значением массива choices[]. Если значение выбора = выбранный выбор, получить индекс массива в качестве выбранного индекса выбора:

// Add this function to 'on form submit' trigger. 
function onFormSubmit(e) { 
    var selectChoiceIndex = getSelectedChoiceIndex(e); 
} 

function getSelectedChoiceIndex(e) { 
    var form = FormApp.getActiveForm(); 
    var mChoiceIndex = 1; // Assuming 1 is your mutiple-choice question index. 
    var formResponse = e.response; 
    var itemResponses = formResponse.getItemResponses(); 

    var selectedChoice = itemResponses[mChoiceIndex].getResponse(); 
    var choices = form.getItems(FormApp.ItemType.MULTIPLE_CHOICE)[mChoiceIndex].asMultipleChoiceItem().getChoices(); 

    for (i = 0; i < choices.length; i++) { 
    if (selectedChoice == choices[i]) { 
     return i; 
    }; 
    } 
} 

Things отметить:

  1. Пример приведен в этом ответе есть просто концепция , а не оптимизированную или полностью протестированную версию кода.
  2. mChoiceIndex Здесь приведено значение индекса ItemType на форме. Это следует за тем, как они представлены во время выполнения, а не время разработки, особенно если у вас есть условный разрыв страницы/раздел.
Смежные вопросы