Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google Sheets脚本UserForm-将数据从表单发送到电子表格-UserForm字段未正确处理_Javascript_Google Apps Script_Google Sheets_Userform - Fatal编程技术网

Javascript Google Sheets脚本UserForm-将数据从表单发送到电子表格-UserForm字段未正确处理

Javascript Google Sheets脚本UserForm-将数据从表单发送到电子表格-UserForm字段未正确处理,javascript,google-apps-script,google-sheets,userform,Javascript,Google Apps Script,Google Sheets,Userform,我不熟悉谷歌脚本。我在线学习了一些教程,并创建了一个用户表单,该表单有4个输入: 公司名称、数量、代理商和备注。这里的唯一目标是将数据从用户表单复制到电子表格。我已经编写了以下html和函数,但单击“添加”按钮后不会填充数据 I know the addRowData function is working when correct input gets to it. So either I am not population rowData correctly or EventListener

我不熟悉谷歌脚本。我在线学习了一些教程,并创建了一个用户表单,该表单有4个输入: 公司名称、数量、代理商和备注。这里的唯一目标是将数据从用户表单复制到电子表格。我已经编写了以下html和函数,但单击“添加”按钮后不会填充数据

I know the addRowData function is working when correct input gets to it. So either I am not population rowData correctly or EventListener does not work correctly. Can anybody please help me find where the issue is?

    function addNewRow(rowData) {
  const currentDate=new Date();
  const ss=SpreadsheetApp.getActiveSpreadsheet();
  const ws=ss.getSheetByName("Results");
  ws.appendRow([currentDate, rowData.companyName,rowData.qty,rowData.agentName,rowData.commentText]); 
  return true;
}


   <div class="container">
      <div>
      <div class="form-group">
        <label for="company-name">Company</label>
        <input type="text" class="form-control" id="company-name">
      </div>
      <div class="form-group">
        <label for="number-boxes">Number of Boxes</label>
        <input type="Text" class="form-control" id="number-boxes">
      </div>
      <div class="form-group">
        <label for="agent-name">Agent</label>
        <input type="text" class="form-control" id="agent-name">
      </div>
      <div class="form-group">
        <label for="comment-text">Comment</label>
        <input type="Text" class="form-control" id="comment-text">
      </div>
      <button  class="btn btn-primary" id="mainButton">Add</button>
    </div>
  </div>


     <script>
       function afterButtonClicked(){
         var companyName = getElementById("company-name");
         var qty = getElementById("number-boxes");
         var agentName = getElementById("agent-name");
         var commentText = getElementById("comment-text");
         var rowData={companyName: companyName.value,qty: qty.value,agentName: agentName.value,commentText: commentText.value};
         google.script.run.withSuccessHandler(afterSubmit).addNewRow(rowData);
       }
       function afterSubmit(e){
         var qty = getElementById("number-boxes");
         qty.value="";
       }
       
       document.getElementById("mainButton").addEventListener("click",afterButtonClicked());
     </script>
  
  
  </body>
当正确的输入到达addRowData函数时,我知道它正在工作。因此,要么我没有正确填充行数据,要么EventListener工作不正常。有人能帮我找到问题所在吗?
函数addNewRow(rowData){
const currentDate=新日期();
const ss=SpreadsheetApp.getActiveSpreadsheet();
const ws=ss.getSheetByName(“结果”);
ws.appendRow([currentDate,rowData.companyName,rowData.qty,rowData.agentName,rowData.commentText]);
返回true;
}
单位
箱数
代理人
评论
添加
函数afterButtonClicked(){
var companyName=getElementById(“公司名称”);
变量数量=getElementById(“数字框”);
var agentName=getElementById(“代理名称”);
var commentText=getElementById(“注释文本”);
var rowData={companyName:companyName.value,qty:qty.value,agentName:agentName.value,commentText:commentText.value};
google.script.run.withSuccessHandler(afterSubmit.addNewRow(rowData);
}
后提交函数(e){
变量数量=getElementById(“数字框”);
数量值=”;
}
document.getElementById(“mainButton”).addEventListener(“单击”,afterButtonClicked());

我想提出以下修改

修改点:
  • document.getElementById(“mainButton”).addEventListener(“单击”,afterButtonClicked())
    ,该函数由加载HTML时的
    afterButtonClicked()
    ()
    运行。在这种情况下,请删除
    ()
  • 关于
    getElementById(“####”)
    ,在这种情况下,请添加
    文档
    document.getElementById(“####”)
当上述各点反映到脚本中时,它将变成如下所示。我认为你的谷歌应用程序脚本是有效的

修改脚本: 在这种情况下,请按如下方式修改Javascript

<script>
 function afterButtonClicked(){
   var companyName = document.getElementById("company-name");
   var qty = document.getElementById("number-boxes");
   var agentName = document.getElementById("agent-name");
   var commentText = document.getElementById("comment-text");
   var rowData={companyName: companyName.value,qty: qty.value,agentName: agentName.value,commentText: commentText.value};
   google.script.run.withSuccessHandler(afterSubmit).addNewRow(rowData);
 }
 function afterSubmit(e){
   var qty = document.getElementById("number-boxes");
   qty.value="";
 }
 
 document.getElementById("mainButton").addEventListener("click",afterButtonClicked);
</script>

函数afterButtonClicked(){
var companyName=document.getElementById(“公司名称”);
变量数量=document.getElementById(“数字框”);
var agentName=document.getElementById(“代理名称”);
var commentText=document.getElementById(“注释文本”);
var rowData={companyName:companyName.value,qty:qty.value,agentName:agentName.value,commentText:commentText.value};
google.script.run.withSuccessHandler(afterSubmit.addNewRow(rowData);
}
后提交函数(e){
变量数量=document.getElementById(“数字框”);
数量值=”;
}
document.getElementById(“主按钮”).addEventListener(“单击”,后按钮单击);
参考资料:

@user1372020感谢您的回复。我很高兴你的问题解决了。