Google script gmail addon update TextInput value,o

2019-07-14 05:39发布

问题:

I have create simple gmail addon using google script,in that i have struggle here,

how to update textinput value on setOnChangeAction Method ,i have checked the document, i couldn't find any methods

The below code i have tried,

var client_action = CardService.newAction().setFunctionName('clientId_callBack');
CardService.newTextInput()
  .setFieldName("clientId")
  .setTitle("Please enter clinet id")
  .setOnChangeAction(client_action)

function clientId_callBack(e){
  Logger.log("%s",JSON.stringify(e))
  e.formInput.clientId = "updatedValue";
}

Thanks in advance

回答1:

How about this work around? I think that there may be other ways. So please think of this as one of several answers. In this sample script, when the value of foo is inputted, the text input is reconstructed using CardBuilder. When you use this script, as a test, please input foo. This is a very simple snippet, so please modify this for your environment.

Sample script :

function buildAddOn() {
  var card = CardService.newCardBuilder();
  card.setHeader(CardService.newCardHeader().setTitle("Sample"));
  var section = CardService.newCardSection();
  var action = CardService.newAction().setFunctionName('changeValue');
  section.addWidget(CardService.newTextInput().setFieldName("value").setTitle("Input \"foo\" as a value.").setOnChangeAction(action))
  return card.addSection(section).build()
}

function changeValue(e) {
  if (e.formInput.value == "foo") {
    var card = CardService.newCardBuilder();
    card.setHeader(CardService.newCardHeader().setTitle("Changed"));
    var section = CardService.newCardSection();
    var action = CardService.newAction().setFunctionName('getValue1');
    section.addWidget(CardService.newTextInput().setFieldName("value").setTitle("Got \"foo\".").setOnChangeAction(action).setValue("bar"))
    return card.addSection(section).build()
  }
}

If I misunderstand your question, I'm sorry.