Промяната на стойността на събитието в CardService.newTextInput не променя показаната стойност в textinput в добавката на gmail

Имам проста добавка за gmail, в която се опитвам да направя персонализирана форма за влизане. Проблемът, с който се сблъсквам, е, че когато променям полето за въвеждане от на Change handler, показаната стойност не се променя. Опитвам се да скрия полето за парола.

Приспособление за въвеждане на текст

function getMembersSelectMenu(){

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


return textInput;

}

функция манипулатор за textInput

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

}

Вече сте проверили, обектът и стойността се актуализират, но не се променят в изгледа


person Talha Fayyaz    schedule 29.01.2020    source източник


Отговори (1)


Когато стойността на полето textInput се промени, handlePasswordChange се извиква с eventObject. Мисля, че се опитвате да зададете стойността в това eventObject вътре в handlePasswordChange, а не в това поле.

Мисля, че можем да направим нещо подобно:

1. Създайте някаква глобална променлива, за да следите полето.

2. Създайте поле и задайте в тази променлива.

3. При промяна на зададената стойност в това.

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("*******");
}
person Umair Mohammad    schedule 29.01.2020
comment
можем ли да декларираме директно глобалната променлива? какъв е обхватът за него, защото нямаме класове в appscript, моля, кажете ми, ако греша - person Talha Fayyaz; 30.01.2020
comment
Да, @TalhaFayyaz, можем да декларираме глобални променливи. - person Umair Mohammad; 30.01.2020
comment
можем ли да ми кажем последователността, от която се изпълнява? Аз съм начинаещ в приложението Script - person Talha Fayyaz; 30.01.2020
comment
Може би можете да зададете това като нов въпрос? - person Umair Mohammad; 30.01.2020