“google.script.run.function”没有传递来自htmlservice的值

时间:2012-09-27 21:07:21

标签: google-apps-script

我理解issue 1660已标记为已修复,但我似乎无法将任何参数从我的htmlservice表单传递到我的google apps脚本。这是我尝试过的:

<my html file>
<form id="myForm">
  <input name="aField" id="aField">
  <input type="button" id="submit" value="submit" onclick = "sendData()">
</form>

<script>
function sendData() {
   google.script.run.processForm(document.getElementById("myForm"));
}
</script>
</my html file>

<google apps script>
   function processForm(value) {
      var range = SpreadsheetApp.openById("1234").getRangeByName("testRnage");
      range.setValue(value.aField);
    }
   </google apps script>

使用

<input type="button" id="submit" value="submit" onclick = "google.script.run.processForm(this.parentNode)">也不起作用。

这两种方法都会导致以下浏览器错误:“未捕获的ScriptError:TypeError:无法调用方法”setValue“为null。”

感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

我一直在成功地做到这一点:

var invoice = new Object();

invoice.customerCode = selectedCustomer.value;
invoice.discount = document.getElementById('discount').value;
invoice.items = blah, blah, blah . . . 

var jsonInvoice = JSON.stringify(invoice);

google.script.run.recordInvoice(jsonInvoice);

...在服务器上用这个......

function recordInvoice(jsonInvoice) {
    var theInvoice = eval("(" + jsonInvoice + ")");
    var cust = theInvoice.customerCode;

如果这看起来不完整,请随意提出详细说明。