Javascript 使用切换按钮';s在谷歌HtmlService中的价值
跟进,最后说: 在我提供的应用程序中,我能够使用Javascript 使用切换按钮';s在谷歌HtmlService中的价值,javascript,google-apps-script,Javascript,Google Apps Script,跟进,最后说: 在我提供的应用程序中,我能够使用form.myButton.value,但问题是当我试图从Google App code函数中使用它来更新我的标签时,就像正在做的一样,它总是失败,我不知道为什么 详情如下: HTML 反馈表 var状态=假; //将传递的按钮从关闭切换到打开,反之亦然。 功能切换(按钮){ 状态=!状态; 如果(州){ button.value=“ON”; }否则{ button.value=“关”; } } 函数提交表单(表单){ google.s
form.myButton.value
,但问题是当我试图从Google App code函数中使用它来更新我的标签时,就像正在做的一样,它总是失败,我不知道为什么
详情如下:
HTML
反馈表
var状态=假;
//将传递的按钮从关闭切换到打开,反之亦然。
功能切换(按钮){
状态=!状态;
如果(州){
button.value=“ON”;
}否则{
button.value=“关”;
}
}
函数提交表单(表单){
google.script.run
.withSuccessHandler(函数(值){
document.getElementById('message').innerHTML=value;
document.getElementById(“myForm”).reset();
})
.提交数据(表格);
}
气体
//https://stackoverflow.com/questions/59583876/google-apps-script-html-form/
//它作为一个对话框工作
函数显示对话框(){
var userInterface=HtmlService.createHtmlOutputFromFile('Index');
SpreadsheetApp.getUi().showModelessDialog(用户界面,“表单”)
}
//测试
// https://jsbin.com/vodamekuxu/edit?html,js,控制台,输出
函数提交数据(表格){
Logger.log('name:%s
电子邮件:%s
注释:%s',form.name,form.Email,form.Comment);
返回Utilities.formatString('名称:%s
电子邮件:%s
注释:%s',form.name,form.Email,form.Comment);
//返回实用程序.formatString('名称:%s
电子邮件:%s
切换:%s
注释:%s',form.name,form.Email,form.myButton,form.Comment);
}
同样,问题是,当我试图从Google应用程序代码函数中更新我的标签时,就像HTML演示代码所做的那样,它总是失败,我不知道为什么
上面的代码可以工作,但是如果切换到使用第二个返回,它将失败(我相信是因为
form.myButton
部分)。我认为,当使用Google.scrit.run
将表单对象发送到谷歌应用程序脚本端时,解析对象时可能无法包含该按钮。当我测试这个时,我确认了同样的情况。所以在本例中,作为一种解决方法,如何在Javascript端解析表单对象
当您的脚本被修改时,它将变成如下所示
修改脚本:
请修改Javascript的函数submitForm()
,如下所示
发件人:
致:
- 通过以上修改,按钮的值可以发送到Google Apps脚本端
- 谷歌应用程序脚本端的
的值类似于form
。如果您不想发送{“email”:“comment”:“comment”:“ON”}
,请筛选该值:“Submit”
- 在这种情况下,我认为您的
返回Utilities.formatString('name:%s
Email:%s
切换:%s
注释:%s',form.name,form.Email,form.myButton,form.Comment)可以使用Google应用程序脚本中的代码>
- 当表单包含文件类型的输入选项卡时,脚本有点复杂。当时,使用Javascript库解析Google Apps脚本的表单对象怎么样李>
- 当您修改Google Apps脚本时,请将部署修改为新版本。这样,修改后的脚本将反映到Web应用程序中。请注意这一点。
- 有关详情,请参阅“”的报告
.submitData(form);
.submitData([...form].reduce((o, e) => Object.assign(o, {[e.name]: e.value}), {}));