谷歌脚本gmail插件更新TextInput值,关于更改功能

时间:2018-02-09 12:35:57

标签: google-apps-script gmail-addons

我使用google脚本创建了简单的gmail插件,因为我在这里很难,

如何在 setOnChangeAction 方法上更新textinput值,我已经检查了文档,我找不到任何方法

以下代码我试过了,

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";
}

提前致谢

1 个答案:

答案 0 :(得分:0)

这项工作怎么样?我认为可能还有其他方法。因此,请将此视为几个答案之一。在此示例脚本中,当输入foo的值时,使用CardBuilder重建文本输入。当您使用此脚本作为测试时,请输入foo。这是一个非常简单的代码段,因此请根据您的环境进行修改。

示例脚本:

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()
  }
}

如果我误解了你的问题,我很抱歉。