更改 CardService.newTextInput 中的事件值不会更改 gmail 插件中 textinput 中的显示值

Changing the value of event in CardService.newTextInput does not change the displayed value in textinput in gmail addon

我有一个简单的 gmail 插件,我试图在其中制作自定义登录表单。我面临的问题是,当我从更改处理程序更改输入字段时,显示的值没有更改。试图隐藏密码字段。

文本输入小部件

function getMembersSelectMenu(){

   var textInput = CardService.newTextInput()
    .setFieldName("Password")
    .setTitle("Password")
    .setHint("Enter Password")
    .setOnChangeAction(CardService.newAction()
    .setFunctionName("handlePasswordChange"))


return textInput;

}

文本输入的处理函数

function handlePasswordChange(e){
 // e.formInput.pass = e.formInput.Password;
  e.formInput.Password = "*";
  e.formInputs.Password = "******"
  Logger.log("my value object" + JSON.stringify(e));

}

已检查对象和值已更新但未在视图中更改

textInput字段值改变时,handlePasswordChangeeventObject调用。我认为您正在尝试在 handlePasswordChange 内而不是在该字段上设置 eventObject 中的值。

我想我们可以这样做:

1.Create 一些全局变量来跟踪字段。

2.Create 字段并在该变量中赋值。

3.On value 更改其中的设定值。

var passwordField;

function getMembersSelectMenu(){
     passwordField = CardService.newTextInput()
        .setFieldName("Password")
        .setTitle("Password")
        .setHint("Enter Password")
        .setOnChangeAction(CardService.newAction()
        .setFunctionName("handlePasswordChange"))
    return passwordField;
}

function handlePasswordChange(e){
    // e.formInput.pass = e.formInput.Password;
    passwordField.setValue("*******");
}