AI-generated Key Takeaways
-
MultipleChoiceItem is a question type in Google Forms allowing single selection from a list or an "other" field, and is autograded when used in a quiz.
-
You can create or access MultipleChoiceItem objects from a Form object in Apps Script.
-
Key methods include creating choices with or without correctness and page navigation, creating item responses, duplicating the item, and setting properties like title, help text, required status, and the "other" option.
-
Methods are available to get information about the item, such as its choices, feedback for correct/incorrect answers, help text, ID, index, points, title, and type.
-
Setting choices can be done using an array of strings or an array of Choice objects.
A question item that allows the respondent to select one choice from a list of radio buttons or
an optional "other" field. Items can be accessed or created from a Form
. When used in a
quiz, these items are autograded.
// Open a form by ID and add a new multiple choice item. const form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz'); const item = form.addMultipleChoiceItem(); item.setTitle('Do you prefer cats or dogs?') .setChoices([item.createChoice('Cats'), item.createChoice('Dogs')]) .showOtherOption(true);
Methods
Method | Return type | Brief description |
---|---|---|
create | Choice | Creates a new choice. |
create | Choice | Creates a new choice. |
create | Choice | Creates a new choice with a page-navigation option that jumps to a given page-break item. |
create | Choice | Creates a new choice with a page-navigation option. |
create | Item | Creates a new Item for this multiple-choice item. |
duplicate() | Multiple | Creates a copy of this item and appends it to the end of the form. |
get | Choice[] | Gets all choices for an item. |
get | Quiz | Returns the feedback that is shown to respondents when they respond correctly to a question. |
get | Quiz | Returns the feedback that is shown to respondents when they respond incorrectly to a question. |
get | String | Gets the item's help text (sometimes called description text for layout items like Image , Page , and Section ). |
get | Integer | Gets the item's unique identifier. |
get | Integer | Gets the index of the item among all the items in the form. |
get | Integer | Returns the point value of a gradeable item. |
get | String | Gets the item's title (sometimes called header text, in the case of a Section ). |
get | Item | Gets the item's type, represented as an Item . |
has | Boolean | Determines whether the item has an "other" option. |
is | Boolean | Determines whether the respondent must answer the question. |
set | Multiple | Sets the choices for an item from an array of strings. |
set | Multiple | Sets an array of choices for an item. |
set | Multiple | Sets the feedback to be shown to respondents when they respond correctly to a question. |
set | Multiple | Sets the feedback to be shown to respondents when they respond incorrectly to a question. |
set | Multiple | Sets the item's help text (sometimes called description text for layout items like Image , Page , and Section ). |
set | Multiple | Sets the number of points a gradeable item is worth. |
set | Multiple | Sets whether the respondent must answer the question. |
set | Multiple | Sets the item's title (sometimes called header text, in the case of a Section ). |
show | Multiple | Sets whether the item has an "other" option. |
Detailed documentation
createChoice(value)
Creates a new choice.
Parameters
Name | Type | Description |
---|---|---|
value | String | the choice's value, which respondents see as a label when viewing the form |
Return
Choice
— the new choice
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
createChoice(value, isCorrect)
Creates a new choice.
Parameters
Name | Type | Description |
---|---|---|
value | String | the choice's value, which respondents see as a label when viewing the form |
is | Boolean | whether the choice is a correct answer |
Return
Choice
— the new choice
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
createChoice(value, navigationItem)
Creates a new choice with a page-navigation option that jumps to a given page-break item. This
is equivalent to create
with navigation
set to Form
. Choices that use page
navigation cannot be combined in the same item with choices that do not use page navigation.
The page navigation occurs after the respondent completes a page that contains the option, and only if the respondent chose that option. If the respondent chose multiple options with page-navigation instructions on the same page, only the last navigation option has any effect. Page navigation also has no effect on the last page of a form.
Parameters
Name | Type | Description |
---|---|---|
value | String | the choice's value, which respondents see as a label when viewing the form |
navigation | Page | the item to navigate to |
Return
Choice
— the new choice
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
createResponse(response)
Creates a new Item
for this multiple-choice item. Throws an exception if the
response
argument does not match a valid choice for this item, unless show
is set to true
.
Parameters
Name | Type | Description |
---|---|---|
response | String | a valid answer for this multiple-choice item |
Return
Item
— the item response
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
duplicate()
Creates a copy of this item and appends it to the end of the form.
Return
Multiple
— a duplicate of this Multiple
, for chaining
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getChoices()
getFeedbackForCorrect()
Returns the feedback that is shown to respondents when they respond correctly to a question.
Return
Quiz
— the feedback, if any.
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getFeedbackForIncorrect()
Returns the feedback that is shown to respondents when they respond incorrectly to a question.
Return
Quiz
— the feedback, if any.
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getHelpText()
Gets the item's help text (sometimes called description text for layout items like Image
, Page
, and Section
).
Return
String
— the item's help text or description text
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getId()
Gets the item's unique identifier.
Return
Integer
— the item's ID
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getIndex()
Gets the index of the item among all the items in the form.
Return
Integer
— the index of the item
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getPoints()
Returns the point value of a gradeable item.
Return
Integer
— the number of points a question is worth.
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getTitle()
Gets the item's title (sometimes called header text, in the case of a Section
).
Return
String
— the item's title or header text
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getType()
hasOtherOption()
Determines whether the item has an "other" option.
Return
Boolean
— true
if the item has an "other" option; false
if not
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
isRequired()
Determines whether the respondent must answer the question.
Return
Boolean
— whether the respondent must answer the question
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
setChoiceValues(values)
Sets the choices for an item from an array of strings. Throws an exception if the given array is empty.
// Open a form by ID and add a new list item. const form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz'); const item = form.addListItem(); item.setTitle('Do you prefer cats or dogs?'); item.setChoiceValues(['Dogs', 'Cats']);
Parameters
Name | Type | Description |
---|---|---|
values | String[] | the array of choice values, which respondents see as labels when viewing the form |
Return
Multiple
— this Multiple
, for chaining
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
setChoices(choices)
Sets an array of choices for an item. Throws an exception if the given array is empty or
contains a null
element.
// Open a form by ID and add a new list item. const form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz'); const item = form.addListItem(); item.setTitle('Do you prefer cats or dogs?'); item.setChoices([item.createChoice('Cats'), item.createChoice('Dogs')]);
Parameters
Name | Type | Description |
---|---|---|
choices | Choice[] | an array of choices |
Return
Multiple
— this Multiple
, for chaining
Throws
Error
— if the given array is null
, empty, or contains a null
element
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
setFeedbackForCorrect(feedback)
Sets the feedback to be shown to respondents when they respond correctly to a question.
// Open a form by ID and add a new list item. const form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz'); const item = form.addListItem(); item.setTitle('Do you prefer cats or dogs?'); // Set "Dogs" as the correct answer to this question. item.setChoices([ item.createChoice('Dogs', true), item.createChoice('Cats', false), ]); // Add feedback which will be shown for correct responses; ie "Dogs". item.setFeedbackForCorrect( FormApp.createFeedback().setDisplayText('Dogs rule, cats drool.').build(), );
Parameters
Name | Type | Description |
---|---|---|
feedback | Quiz | the new feedback. A null value will clear the feedback. |
Return
Multiple
— this Multiple
, for chaining
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
setFeedbackForIncorrect(feedback)
Sets the feedback to be shown to respondents when they respond incorrectly to a question.
Parameters
Name | Type | Description |
---|---|---|
feedback | Quiz | the new feedback |
Return
Multiple
— this Multiple
, for chaining
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
setHelpText(text)
Sets the item's help text (sometimes called description text for layout items like Image
, Page
, and Section
).
Parameters
Name | Type | Description |
---|---|---|
text | String | the new help text |
Return
Multiple
— this Multiple
, for chaining
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
setPoints(points)
Sets the number of points a gradeable item is worth. The default for new items is 0.
Parameters
Name | Type | Description |
---|---|---|
points | Integer | the number of a points a question item is worth |
Return
Multiple
— this Multiple
, for chaining
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
setRequired(enabled)
Sets whether the respondent must answer the question.
Parameters
Name | Type | Description |
---|---|---|
enabled | Boolean | whether the respondent must answer the question |
Return
Multiple
— the current item (for chaining)
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
setTitle(title)
Sets the item's title (sometimes called header text, in the case of a Section
).
Parameters
Name | Type | Description |
---|---|---|
title | String | the new title or header text |
Return
Multiple
— this Multiple
, for chaining
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
showOtherOption(enabled)
Sets whether the item has an "other" option. The default for a new Checkbox
or
Multiple
is false
.
Parameters
Name | Type | Description |
---|---|---|
enabled | Boolean | true if the item has an "other" option; false if not |
Return
Multiple
— this Multiple
, for chaining
Authorization
Scripts that use this method require authorization with one or more of the following scopes:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms