【发布时间】:2022-01-02 18:38:21
【问题描述】:
我创建了一个 Google Script Web 项目并添加了一个 HTML 表单,该表单具有多个文件输入字段和一些文本输入字段。该表单正在工作并每次提交所有文本输入,但文件输入字段存在问题。
- 当我的表单只有一个文件输入字段时,所有文本输入和文件数据都会提交到服务器并可以保存文件。
- 当我的表单有两个或多个文件输入字段时,所有文本输入都会提交到服务器端,但文件字段有空对象,即@ 987654324@
表格如下:
<form id="msForm">
.......
<input type="file" class="custom-file-input" name="certificateFile" accept="application/pdf" required >
<input type="file" class="custom-file-input" name="otherDocuments" accept="application/pdf" required >
.....
<input type="button" name="next" class="next action-button" value="Submit" />
</form>
JS有以下提交表单:
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);
$(document).ready(function(){
$(".next").click(function(){
if($(this).val()=="Submit") {
google.script.run
.withSuccessHandler(successFormSubmit)
.withFailureHandler(failedFormSubmit)
.processForm($(this).closest("form")[0]);
}
});
});
Code.gs文件中的服务器端函数:
function processForm(formObject) {
console.log(formObject.certificateFile);
console.log(formObject.otherDocuments);
}
应用程序正在使用以下项目设置进行部署和测试:
【问题讨论】:
-
服务器端函数processForm()在哪里?
-
@Cooper 更新了帖子
-
到目前为止,我只能看到您的
$(document).ready(function()缺少右括号。你能展示你的 doGet() 函数、WebApp 部署设置和导入的客户端库(jQuery 等...)吗? -
感谢@ziganotschka 我在issuetracker.google.com/issues/212826471添加了一个新错误