繁体   English   中英

尝试通过Google App脚本将表单条目(从边栏)传递到Google表格中的特定列/单元格中

[英]Trying to pass form entry (from a sidebar) into a specific column/cell in Google Sheets via Google App Scripts

我浏览了很多有关我的问题的文章,但是仍然无法解决我的问题。 我正在尝试在边栏中创建一个表单,在该表单中,条目将与其他(隐藏)字符串连接在一起以“生成”完整的URL,然后将该URL发布到活动工作表的列中。 我能够显示侧边栏和显示的表单,但是在那之后我似乎无法使其他任何东西正常工作。 当我单击“提交”时,边栏变为空白,并且什么也没有发生。

这是我的Code.gs:

function onOpen() {
  SpreadsheetApp.getUi()
      .createMenu('Custom Menu')
      .addItem('Show sidebar', 'showSidebar')
      .addToUi();
}

function showSidebar() {
  var html = HtmlService.createHtmlOutputFromFile('Form')
      .setTitle('Link Generator')
      .setWidth(300);
  SpreadsheetApp.getUi()
      .showSidebar(html);
}

function processForm(form) {
  var result = "https://somelink.com/checkout/term?key="+form.partkey+"&metadata=%7B%22morelink%22%3A"+form.cid+"%7D&p_sheet="+form.psheet;
  SpreadsheetApp.getActiveSheet().getActiveCell().setValue(result);
  Logger.log(form)
}

这是我的Form.html:

<link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css">

<script>
function handleFormSubmit(formObject) {
    google.script.run.processForm(
      {
        partkey: formObject.getElementById("partkey").value,
        cid: formObject.getElementById("cid").value,
        psheet: formObject.getElementById("psheet").value
      });
}
</script>

<form id="myForm" onsubmit="handleFormSubmit(this)">
  Part Key: <input type="text" name="partkey" id="partkey" required><br/>
  CID: <input type="text" name="cid" id="cid" required><br/>
  PSheet: <input type="text" name="psheet" id="psheet" required><br/>
  <input type="submit" value="Submit" />
</form>
<div id="output"></div>
<p>
<input type="button" value="Close" onclick="google.script.host.close()" />

请注意,我实际上是JavaScript和所有编码的新手。

能够遵循@I'-'I指导并查看了此文档

我将此添加到我的html文件中,它解决了我的问题:

 function preventFormSubmit() { var forms = document.querySelectorAll('form'); for (var i = 0; i < forms.length; i++) { forms[i].addEventListener('submit', function(event) { event.preventDefault(); }); } } window.addEventListener('load', preventFormSubmit); function handleFormSubmit(formObject) { google.script.run.processForm(formObject); } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM