如何在Google应用脚本中从自定义对话框窗口获取数据?

4
我使用Google App Script在Google电子表格中创建了一个类似下图的自定义对话框窗口

enter image description here

我如何将窗口中的数据传输到我的电子表格中呢?

以下是我的HTML代码:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>

<form action="google.script.run.testing143()">
  Task Number:<br>
  <input type="text" name="taskNumber" value="">
  <br><br>
   Task Date:<br>
  <input type="text" name="taskDate" value="">
  <br><br>
   Customer Name:<br>
  <input type="text" name="customerName" value="">
  <br><br>
   Customer Site:<br>
  <input type="text" name="customerSite" value="">
  <br><br>
  <select>
  <option value="status">Status</option>
  <option value="complete">Complete</option>
  <option value="scheduled">Scheduled</option>
  <option value="reschedule">Reschedule</option>
  </select>
  <br><br>
   Status Date:<br>
  <input type="text" name="statusDAte" value="">
  <br><br>
   Location:<br>
  <input type="text" name="location" value="">
  <br><br>
   Description:<br>
  <input type="text" name="description" value="">
  <br><br>
  <input type="submit" value="Submit">
</form> 

  <script>
  function testing143(){
  Logger.log('With Success')  ///Doesn't work
  var lmnt = document.getElementByName('usrname'); //Wrong

  }
  </script>
  </body>
</html>

当我点击“提交”时,会跳转到400错误页面。 我可以创建一个函数,将数据作为参数传递,例如:
function getNewTask(number,date,status...) 

我可以使用 document.getElement 吗?如果可以,应该怎么做?

非常感谢您的帮助!


2
你需要使用google.script.run将数据从你的HTML对话框传递到电子表格中,你可以使用withSuccessHandler或withFailureHandler返回该脚本的值,请参见https://developers.google.com/apps-script/guides/html/reference/run。 - TheWizEd
1个回答

5
我已经拿到了你的代码并进行了修改,使其能够正常工作。
在 Code.gs 中:
function testing143(obj) {
  Logger.log(obj);
  return "hello";
}

在HTML文件中
<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>

<form id="myForm">
  Task Number:<br>
  <input type="text" name="taskNumber" value="">
  <br><br>
   Task Date:<br>
  <input type="text" name="taskDate" value="">
  <br><br>
   Customer Name:<br>
  <input type="text" name="customerName" value="">
  <br><br>
   Customer Site:<br>
  <input type="text" name="customerSite" value="">
  <br><br>
  <select name="status">
  <option value="status">Status</option>
  <option value="complete">Complete</option>
  <option value="scheduled">Scheduled</option>
  <option value="reschedule">Reschedule</option>
  </select>
  <br><br>
   Status Date:<br>
  <input type="text" name="statusDate" value="">
  <br><br>
   Location:<br>
  <input type="text" name="location" value="">
  <br><br>
   Description:<br>
  <input type="text" name="description" value="">
  <br><br>
  <input type="button" value="Submit" onclick="testing143()">
</form> 

  <script>
  function success(msg) {
    alert(msg);
  }

  function testing143(){
    var form = document.getElementById("myForm").elements;
    var obj ={};
    for(var i = 0 ; i < form.length ; i++){
        var item = form.item(i);
        obj[item.name] = item.value;
    }
    google.script.run.withSuccessHandler(success).testing143(obj);
  }
  </script>
  </body>
</html>

非常完美地工作。谢谢! - Brandon Pillay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接