Могу ли я добавить опцию флажка через скрипт из формы, созданной без какого-либо скрипта к нему - PullRequest
0 голосов
/ 24 июня 2019

Я создал форму без использования скрипта Google, а затем создал скрипт, который открывает форму по Id.Я хочу знать, могу ли я добавить флажок ко второму вопросу о флажке в форме.Итак, я пришел к выводу, что в другой функции я создаю опцию и передаю ее в addOption.То, как я это сделал, работает, но заменяет все, что я ранее добавил к элементу.Наверное, теперь вопрос в том, как добавить дополнительные параметры без замены предыдущего.

function addOption(option) {
  var a = form.getItems(FormApp.ItemType.CHECKBOX)[1].asCheckboxItem();
  a.setChoiceValues(option);
}     

1 Ответ

0 голосов
/ 25 июня 2019

ПРИМЕЧАНИЕ: При условии, что вы просто хотите добавить одну опцию к уже существующим опциям.

Проблема в вашем коде состоит в том, что вы используете функцию setChoicesValues ​​() [1], чтобы переопределить все предыдущие варианты выбора новым.Сначала вам нужно получить массив выбора, добавить новый выбор в массив, а затем установить для нового массива выбора значение CheckboxItem.

Другое дело, что в этом случае лучше использовать setChoices [1] вместоof setChoicesValues ​​[1], потому что setChoicesValues ​​работает с массивом String, а то, что вы получаете из getChoices [1], является массивом Choice.Таким образом, в принципе, проще просто создать новый объект Choice и добавить его в массив Choice, чем циклически проходить по массиву Choices, получить строку каждого Choice и создать для этого строковый массив (и добавить новый выбор строки).

Я немного подправил ваш код, протестировал и успешно работал:

function addOption() {
  var form = FormApp.openById('XXXXX');
  var option = "IT WORKS";

  var a = form.getItems(FormApp.ItemType.CHECKBOX)[1].asCheckboxItem();

 //Create the choice object 
  var option = a.createChoice(option);

//Get all the choices and add the new one to the array
  var options = a.getChoices();
  options.push(option);

//Set the new choices using the Choice array
  a.setChoices(options);
} 

Я использовал переменную option как строку, а затем создал объект Choice, если вы уже передаете параметр option какa объект выбора вы должны удалить эту строку.

[1] https://developers.google.com/apps-script/reference/forms/checkbox-item

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...