Class TextInput

TextInput

A input field widget that accepts text input.

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');

Methods

MethodReturn typeBrief description
setFieldName(fieldName)TextInputSets the key that identifies this text input in the event object that is generated when there is a UI interaction.
setHint(hint)TextInputSets a hint for the text input.
setMultiline(multiline)TextInputSets whether the input text shows on one line or multiple lines.
setOnChangeAction(action)TextInputSets an action to be performed whenever the text input changes.
setSuggestions(suggestions)TextInputSets the suggestions for autocompletion in the text field.
setSuggestionsAction(suggestionsAction)TextInputSets the callback action to fetch suggestions based on user input for autocompletion.
setTitle(title)TextInputSets the title to be shown above the input field.
setValidation(validation)TextInputSets the validation rule for this widget.
setValue(value)TextInputSets the pre-filled value to be set in the input field.

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

NameTypeDescription
fieldNameStringThe 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

NameTypeDescription
hintStringThe 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

NameTypeDescription
multilineBooleanThe multiline setting.

Return

TextInput — This object, for chaining.


setOnChangeAction(action)

Sets an action to be performed whenever the text input changes.

Parameters

NameTypeDescription
actionActionThe action to take.

Return

TextInput — This object, for chaining.


setSuggestions(suggestions)

Sets the suggestions for autocompletion in the text field.

Parameters

NameTypeDescription
suggestionsSuggestionsThe 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

NameTypeDescription
suggestionsActionActionThe 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

NameTypeDescription
titleStringThe 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

NameTypeDescription
validationValidationThe validation rule for this TextInput widget.

Return

TextInput — This object, for chaining.


setValue(value)

Sets the pre-filled value to be set in the input field.

Parameters

NameTypeDescription
valueStringThe default value placed in the input. It is always represented as a string in the form callback parameters.

Return

TextInput — This object, for chaining.