Class TextInput
Stay organized with collections
Save and categorize content based on your preferences.
TextInput
A input field widget that accepts text input.
Supports form submission validation. When Action.setAllWidgetsAreRequired(allWidgetsAreRequired)
is set to
true
or this widget is specified through Action.addRequiredWidget(requiredWidget)
, the submission
action is blocked unless a value is entered.
Available for Google Workspace add-ons and Google Chat apps.
const textInput = CardService.newTextInput()
.setFieldName('text_input_form_input_key')
.setTitle('Text input title')
.setHint('Text input hint');
Detailed documentation
setFieldName(fieldName)
Sets the key that identifies this text input in the event object that is generated when there
is a UI interaction. Not visible to the user. Required, must be unique.
Parameters
Name | Type | Description |
fieldName | String | The key that is used to identify this input. |
Return
TextInput
— This object, for chaining.
setHint(hint)
Sets a hint for the text input. Used to give the user extra guidance on what to input. For
example, a hint could describe formatting ("xxx-xxx-xxxx") for a phone number field.
Parameters
Name | Type | Description |
hint | String | The text hint to display below the input field. This text is always visible. |
Return
TextInput
— This object, for chaining.
setMultiline(multiline)
Sets whether the input text shows on one line or multiple lines.
Parameters
Name | Type | Description |
multiline | Boolean | The multiline setting. |
Return
TextInput
— This object, for chaining.
setOnChangeAction(action)
Sets an action to be performed whenever the text input changes.
Parameters
Name | Type | Description |
action | Action | The action to take. |
Return
TextInput
— This object, for chaining.
setSuggestions(suggestions)
Sets the suggestions for autocompletion in the text field.
Parameters
Name | Type | Description |
suggestions | Suggestions | The collection of suggestions to use. |
Return
TextInput
— This object, for chaining.
setSuggestionsAction(suggestionsAction)
Sets the callback action to fetch suggestions based on user input for autocompletion. The
Action
parameter must specify a callback function that returns a SuggestionsResponse
object.
const action = CardService.newAction()
.setFunctionName('suggestionCallback')
.setParameters({numSuggestions: 3});
CardService.newTextInput()
.setFieldName('option-field')
.setTitle('Option Selected')
.setSuggestionsAction(action);
// ...
function suggestionCallback(e) {
const suggestions = CardService.newSuggestions();
const numSuggestions = Number.parseInt(e.parameter.numSuggestions);
for (let i = 1; i <= numSuggestions; i++) {
suggestions.addSuggestion(`Suggestion ${i}`);
}
return CardService.newSuggestionsResponseBuilder()
.setSuggestions(suggestions)
.build();
}
Parameters
Name | Type | Description |
suggestionsAction | Action | The action that fetches suggestions for this input. |
Return
TextInput
— This object, for chaining.
setTitle(title)
Sets the title to be shown above the input field. Required.
Parameters
Name | Type | Description |
title | String | The text label for this input. |
Return
TextInput
— This object, for chaining.
setValidation(validation)
Sets the validation rule for this widget.
const validation = CardService.newValidation().setCharacterLimit('10').setType(
CardService.InputType.TEXT);
const input = CardService.newTextInput()
.setFieldName('text_name_xxx1')
.setTitle('Max 10 characters')
.setValidation(validation);
Parameters
Return
TextInput
— This object, for chaining.
setValue(value)
Sets the pre-filled value to be set in the input field.
Parameters
Name | Type | Description |
value | String | The default value placed in the input. It is always represented as a string in the
form callback parameters. |
Return
TextInput
— This object, for chaining.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-01-30 UTC.
[null,null,["Last updated 2025-01-30 UTC."],[[["\u003cp\u003eTextInput is a UI element that allows users to input text within Google Workspace Add-ons and Google Chat apps.\u003c/p\u003e\n"],["\u003cp\u003eIt offers various customization options, including setting titles, hints, pre-filled values, and handling multi-line input.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can set actions triggered by text input changes or employ auto-completion with suggestions.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003esetFieldName\u003c/code\u003e is a required method used to identify the TextInput element in event objects for data retrieval.\u003c/p\u003e\n"],["\u003cp\u003eEach customization method for the TextInput object returns the object itself, enabling method chaining for streamlined configuration.\u003c/p\u003e\n"]]],["The `TextInput` widget allows text input and supports form validation, blocking submission if required fields are empty. Key actions include setting a unique field name (`setFieldName`), providing user hints (`setHint`), enabling multiline input (`setMultiline`), and defining actions on text change (`setOnChangeAction`). Autocompletion is supported via suggestions (`setSuggestions`) or a callback to fetch them (`setSuggestionsAction`). You can set a title (`setTitle`), validation rules (`setValidation`), and pre-fill values (`setValue`).\n"],null,["# Class TextInput\n\nTextInput\n\nA input field widget that accepts text input.\n\nSupports form submission validation. When [Action.setAllWidgetsAreRequired(allWidgetsAreRequired)](/apps-script/reference/card-service/action#setAllWidgetsAreRequired(Boolean)) is set to\n`true` or this widget is specified through [Action.addRequiredWidget(requiredWidget)](/apps-script/reference/card-service/action#addRequiredWidget(String)), the submission\naction is blocked unless a value is entered.\n\nAvailable for Google Workspace add-ons and Google Chat apps.\n\n```javascript\nconst textInput = CardService.newTextInput()\n .setFieldName('text_input_form_input_key')\n .setTitle('Text input title')\n .setHint('Text input hint');\n``` \n\n### Methods\n\n| Method | Return type | Brief description |\n|--------------------------------------------------------------------------|----------------|--------------------------------------------------------------------------------------------------------------------|\n| [setFieldName(fieldName)](#setFieldName(String)) | [TextInput](#) | Sets the key that identifies this text input in the event object that is generated when there is a UI interaction. |\n| [setHint(hint)](#setHint(String)) | [TextInput](#) | Sets a hint for the text input. |\n| [setMultiline(multiline)](#setMultiline(Boolean)) | [TextInput](#) | Sets whether the input text shows on one line or multiple lines. |\n| [setOnChangeAction(action)](#setOnChangeAction(Action)) | [TextInput](#) | Sets an action to be performed whenever the text input changes. |\n| [setSuggestions(suggestions)](#setSuggestions(Suggestions)) | [TextInput](#) | Sets the suggestions for autocompletion in the text field. |\n| [setSuggestionsAction(suggestionsAction)](#setSuggestionsAction(Action)) | [TextInput](#) | Sets the callback action to fetch suggestions based on user input for autocompletion. |\n| [setTitle(title)](#setTitle(String)) | [TextInput](#) | Sets the title to be shown above the input field. |\n| [setValidation(validation)](#setValidation(Validation)) | [TextInput](#) | Sets the validation rule for this widget. |\n| [setValue(value)](#setValue(String)) | [TextInput](#) | Sets the pre-filled value to be set in the input field. |\n\nDetailed documentation\n----------------------\n\n### `set``Field``Name(fieldName)`\n\nSets the key that identifies this text input in the event object that is generated when there\nis a UI interaction. Not visible to the user. Required, must be unique.\n\n#### Parameters\n\n| Name | Type | Description |\n|---------------|----------|----------------------------------------------|\n| `field``Name` | `String` | The key that is used to identify this input. |\n\n#### Return\n\n\n[TextInput](#) --- This object, for chaining.\n\n*** ** * ** ***\n\n### `set``Hint(hint)`\n\nSets a hint for the text input. Used to give the user extra guidance on what to input. For\nexample, a hint could describe formatting (\"xxx-xxx-xxxx\") for a phone number field.\n\n#### Parameters\n\n| Name | Type | Description |\n|--------|----------|------------------------------------------------------------------------------|\n| `hint` | `String` | The text hint to display below the input field. This text is always visible. |\n\n#### Return\n\n\n[TextInput](#) --- This object, for chaining.\n\n*** ** * ** ***\n\n### `set``Multiline(multiline)`\n\nSets whether the input text shows on one line or multiple lines.\n\n#### Parameters\n\n| Name | Type | Description |\n|-------------|-----------|------------------------|\n| `multiline` | `Boolean` | The multiline setting. |\n\n#### Return\n\n\n[TextInput](#) --- This object, for chaining.\n\n*** ** * ** ***\n\n### `set``On``Change``Action(action)`\n\nSets an action to be performed whenever the text input changes.\n\n#### Parameters\n\n| Name | Type | Description |\n|----------|------------------------------------------------------|---------------------|\n| `action` | [Action](/apps-script/reference/card-service/action) | The action to take. |\n\n#### Return\n\n\n[TextInput](#) --- This object, for chaining.\n\n*** ** * ** ***\n\n### `set``Suggestions(suggestions)`\n\nSets the suggestions for autocompletion in the text field.\n\n#### Parameters\n\n| Name | Type | Description |\n|---------------|----------------------------------------------------------------|---------------------------------------|\n| `suggestions` | [Suggestions](/apps-script/reference/card-service/suggestions) | The collection of suggestions to use. |\n\n#### Return\n\n\n[TextInput](#) --- This object, for chaining.\n\n*** ** * ** ***\n\n### `set``Suggestions``Action(suggestionsAction)`\n\nSets the callback action to fetch suggestions based on user input for autocompletion. The\n[Action](/apps-script/reference/card-service/action) parameter must specify a callback function that returns a [SuggestionsResponse](/apps-script/reference/card-service/suggestions-response) object.\n\n```javascript\nconst action = CardService.newAction()\n .setFunctionName('suggestionCallback')\n .setParameters({numSuggestions: 3});\n\nCardService.newTextInput()\n .setFieldName('option-field')\n .setTitle('Option Selected')\n .setSuggestionsAction(action);\n\n// ...\n\nfunction suggestionCallback(e) {\n const suggestions = CardService.newSuggestions();\n const numSuggestions = Number.parseInt(e.parameter.numSuggestions);\n for (let i = 1; i \u003c= numSuggestions; i++) {\n suggestions.addSuggestion(`Suggestion ${i}`);\n }\n return CardService.newSuggestionsResponseBuilder()\n .setSuggestions(suggestions)\n .build();\n}\n```\n\n#### Parameters\n\n| Name | Type | Description |\n|-----------------------|------------------------------------------------------|-----------------------------------------------------|\n| `suggestions``Action` | [Action](/apps-script/reference/card-service/action) | The action that fetches suggestions for this input. |\n\n#### Return\n\n\n[TextInput](#) --- This object, for chaining.\n\n*** ** * ** ***\n\n### `set``Title(title)`\n\nSets the title to be shown above the input field. Required.\n\n#### Parameters\n\n| Name | Type | Description |\n|---------|----------|--------------------------------|\n| `title` | `String` | The text label for this input. |\n\n#### Return\n\n\n[TextInput](#) --- This object, for chaining.\n\n*** ** * ** ***\n\n### `set``Validation(validation)`\n\nSets the validation rule for this widget.\n\n```javascript\nconst validation = CardService.newValidation().setCharacterLimit('10').setType(\n CardService.InputType.TEXT);\n\nconst input = CardService.newTextInput()\n .setFieldName('text_name_xxx1')\n .setTitle('Max 10 characters')\n .setValidation(validation);\n```\n\n#### Parameters\n\n| Name | Type | Description |\n|--------------|--------------------------------------------------------------|-----------------------------------------------------|\n| `validation` | [Validation](/apps-script/reference/card-service/validation) | The validation rule for this [TextInput](#) widget. |\n\n#### Return\n\n\n[TextInput](#) --- This object, for chaining.\n\n*** ** * ** ***\n\n### `set``Value(value)`\n\nSets the pre-filled value to be set in the input field.\n\n#### Parameters\n\n| Name | Type | Description |\n|---------|----------|--------------------------------------------------------------------------------------------------------------|\n| `value` | `String` | The default value placed in the input. It is always represented as a string in the form callback parameters. |\n\n#### Return\n\n\n[TextInput](#) --- This object, for chaining."]]