A response to one question item within a form. Item responses can be accessed from FormResponse
and created from any Item
that asks the respondent to answer a question.
// Open a form by ID and log the responses to each question. var form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz'); var formResponses = form.getResponses(); for (var i = 0; i < formResponses.length; i++) { var formResponse = formResponses[i]; var itemResponses = formResponse.getItemResponses(); for (var j = 0; j < itemResponses.length; j++) { var itemResponse = itemResponses[j]; Logger.log('Response #%s to the question "%s" was "%s"', (i + 1).toString(), itemResponse.getItem().getTitle(), itemResponse.getResponse()); } }
Methods
Method | Return type | Brief description |
---|---|---|
getFeedback() | Object | Gets the feedback that was given for the respondent's submitted answer. |
getItem() | Item | Gets the question item that this response answers. |
getResponse() | Object | Gets the answer that the respondent submitted. |
getScore() | Object | Gets the score for the respondent's submitted answer. |
setFeedback(feedback) | ItemResponse | Sets the feedback that should be displayed for the respondent's submitted answer. |
setScore(score) | ItemResponse | Sets the score for the respondent's submitted answer. |
Detailed documentation
getFeedback()
Gets the feedback that was given for the respondent's submitted answer.
Return
Object
— a QuizFeedback
for the question 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
getItem()
Gets the question item that this response answers.
Return
Item
— the question item that this response answers
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
getResponse()
Gets the answer that the respondent submitted. For most types of question items, this returns a
String
.
For CheckboxItem
questions, this returns a String[]
array containing the
responder's choices. The order of the strings in the array may vary.
For GridItem
questions, this returns a String[]
array in which the answer at
index n
corresponds to the question at row n + 1
in the grid. If a respondent
did not answer a question in the grid, that answer is returned as ''
.
For CheckboxGridItem
questions, this returns a String[][]
array in which the
answers at row index n
corresponds to the question at row n + 1
in the checkbox
grid. If a respondent did not answer a question in the grid, that answer is returned as ''
.
Return
Object
— a String
or String[]
or String[][]
of answers to the question
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
getScore()
Gets the score for the respondent's submitted answer.
Return
Object
— a Double
representing the score for the question 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
setFeedback(feedback)
Sets the feedback that should be displayed for the respondent's submitted answer.
This method does not actually save the feedback in Forms until Form.submitGrades(responses)
is called with the updated FormResponses. See setScore()
for an example.
Parameters
Name | Type | Description |
---|---|---|
feedback | Object |
Return
ItemResponse
— a ItemResponse
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
setScore(score)
Sets the score for the respondent's submitted answer. A null value will clear the existing score.
This method does not actually save the score in Forms until Form.submitGrades(responses)
is called with the updated FormResponses.
// For a multiple choice question with options: "Always true", "Sometimes true", and "Never", // award half credit for responses that answered "Sometimes true". var formResponses = FormApp.getActiveForm().getResponses(); // Go through each form response for (var i = 0; i < formResponses.length; i++) { var response = formResponses[i]; var items = FormApp.getActiveForm().getItems(); // Assume it's the first item var item = items[0]; var itemResponse = response.getGradableResponseForItem(item); // Give half credit for "Sometimes true". if (itemResponse != null && itemResponse.getResponse() == 'Sometimes true') { var points = item.asMultipleChoiceItem().getPoints(); itemResponse.setScore(points * .5); // This saves the grade, but does not submit to Forms yet. response.withItemGrade(itemResponse); } } // Grades are actually submitted to Forms here. FormApp.getActiveForm().submitGrades(formResponses);
Parameters
Name | Type | Description |
---|---|---|
score | Object |
Return
ItemResponse
— a ItemResponse
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