2015-01-23 3 views
0

При использовании .setChoices() Он ищет массив созданных вариантов. Если это вопрос с множественным выбором, он может быть отформатирован либо createChoice(value), либо createChoice(value, navigationType).Есть ли способ проверить, проверяется ли «перейти на страницу на основе ответа» в Google Forms

При взгляде на выбор вы ставите что-то вроде: var cPage = chkItem.getChoices()[j].getGotoPage(); Это приведет к созданию либо объекта страницы, либо значения Null.

Проблема заключается в том, что задан вопрос «перейти на страницу, основанный на ответе», и они не задали страницу для каждой записи и оставили значение по умолчанию, чтобы продолжить, также читает (в моем случае cPage), так как ноль. Это означает, что если я хочу пройти каждый выбор, чтобы захватить его, измените его, а затем отбросьте обратно на вопрос, это мой конец Array, который я выталкиваю, состоит из Null и Objects, что вызывает ошибку.

Мое обходное решение для вопросов без страниц предназначено для сценария для принудительного изменения вопроса для обработки навигации по страницам, но каждый из них должен ПРОДОЛЖИТЬ.

Я хотел бы найти способ проверить, проверен ли вопрос на странице «на основе ответа», а если нет, то сможете создавать варианты, используя только значение.

+0

Если формы имели 'onEdit()' или 'OnChange()' триггер, вы можете проверить состояние после каждого выбор пользователя, но единственные триггеры, которые есть у форм: ** OPEN **, ** TIME DRIVEN ** и ** SUBMIT **. Вы можете добавить пользовательское меню, которое может запускать скрипт в любое время, но это зависит от пользователя, делающего этот выбор. Ваш вопрос кажется таким же, как этот: [StackOverflow - динамически редактировать несколько опций в Live Form в Google Form] (http://stackoverflow.com/questions/18645999/dynamically-edit-multiple-choice-options-in-live -google форм-приложений с помощью-скрипт-? RQ = 1) –

ответ

0

Выяснено: мне нужно проверить первый вариант, если у него есть PageNavigationType(). Если это произойдет, поле будет проверено. Если значение null, то оно не проверяется. Я не написал код, чтобы полностью проверить это, но теория должна работать. (Я проверял только против типа GotoPage, поэтому он не работал до этого.)

var choicecount = chkItem.getChoices().length-1; 
    var hasNavType = chkItem.getChoices()[0].getPageNavigationType(); //if null 

    for (var j = 0; j <= choicecount; ++j) { 
    var cValue = chkItem.getChoices()[j].getValue(); 
    var cPage = chkItem.getChoices()[j].getGotoPage(); 
    var cNav = chkItem.getChoices()[j].getPageNavigationType(); 
    //  Logger.log(j+" "+cPage); 
    if (cValue != reValues[0]){ 

     if (hasNavType == null){ 
     newChoices.push(chkItem.createChoice(cValue)); 
     } else { 

     if (cPage == null){ 
     newChoices.push(chkItem.createChoice(cValue,cNav)); 
     } else { 
     newChoices.push(chkItem.createChoice(cValue,cPage)); 
     } 

     } 
    } 
    } 
Смежные вопросы