Javascript Google Sheets脚本UserForm-将数据从表单发送到电子表格-UserForm字段未正确处理
我不熟悉谷歌脚本。我在线学习了一些教程,并创建了一个用户表单,该表单有4个输入: 公司名称、数量、代理商和备注。这里的唯一目标是将数据从用户表单复制到电子表格。我已经编写了以下html和函数,但单击“添加”按钮后不会填充数据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
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());
我想提出以下修改
修改点:
- 在
,该函数由加载HTML时的document.getElementById(“mainButton”).addEventListener(“单击”,afterButtonClicked())
的afterButtonClicked()
运行。在这种情况下,请删除()
()
- 关于
,在这种情况下,请添加getElementById(“####”)
如文档
document.getElementById(“####”)
<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(“单击”,后按钮单击);
参考资料: