【问题标题】:Prefill an HTML input with Google Apps Script variable使用 Google Apps 脚本变量预填充 HTML 输入
【发布时间】:2020-12-18 00:18:32
【问题描述】:

我正在 Google Apps 脚本的侧边栏上制作一个表单,我想用用户的电子邮件自动填充“邮件”输入。

我知道这个变量获取的是用户的电子邮件

var email = Session.getEffectiveUser (). getEmail ();

但我不知道如何将从该变量(用户的电子邮件)获得的值传递给表单上的输入(inputmail2)。

HTML 表单代码:

<form action="">
    <div>
      <label for="inputmail2">Mail</label>
      <input type="email" id="inputmail2">
    </div>
    <div>
      <label for="inputproblem">Your Problem</label>
      <textarea id="" ></textarea>
    </div>
    <div>
      <button type="submit">Enviar</button>
    </div>
  </form>

已经非常感谢你了!

【问题讨论】:

  • 使用类似这样的东西:let inputTag = getElementsByTagName("input"); inputTag.setAttribute("value", email); 你需要指定。

标签: javascript html google-apps-script


【解决方案1】:

您可以为此使用模板化 HTML。使用 scriptlet,您可以将变量传递给 HTML,如 here 所述。

要做到这一点,您需要将其放入您的 .gs 代码:

var ui = SpreadsheetApp.getUi();
var email = Session.getEffectiveUser().getEmail();
var html = HtmlService.createTemplateFromFile('filename');
html.email = email;
var output = html.evaluate();
ui.showSidebar(output);

然后对于您的表单,您需要插入 scriptlet &lt;?= email ?&gt; 作为值:

<form action="">
    <div>
      <label for="inputmail2">Mail</label>
      <input type="email" id="inputmail2" value="<?= email ?>">
    </div>
    <div>
      <label for="inputproblem">Your Problem</label>
      <textarea id="" ></textarea>
    </div>
    <div>
      <button type="submit">Enviar</button>
    </div>
  </form>

【讨论】:

  • 感谢您简洁的回答。我一直在寻找这个,并找到了很多令人费解的答案。顺便说一句,有没有办法预先填写 ?到目前为止,我还没有成功(也许我必须将其设置为特定的语言环境...??再次感谢!
  • @yago 作为日期,您需要将其格式为 YYYY-MM-DD 才能正常工作。希望对您有所帮助。
  • 好的,谢谢!我不得不尝试使用 toISOString() 方法,并且在奇怪的日光调整方面遇到了一些问题,但最后我想出了一个帮助函数来格式化这样的日期,它就像一个魅力:)
猜你喜欢
  • 2017-03-25
  • 2016-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多