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)
注:
  • 当表单包含文件类型的输入选项卡时,脚本有点复杂。当时,使用Javascript库解析Google Apps脚本的表单对象怎么样
  • 当您修改Google Apps脚本时,请将部署修改为新版本。这样,修改后的脚本将反映到Web应用程序中。请注意这一点。
  • 有关详情,请参阅“”的报告
参考资料:

表格上的所有内容似乎都对我有用。我不知道你在说什么标签我在你的表格上没有看到任何标签。您可以改为使用占位符。消息是从submitData()函数返回的,并显示为div。因此,我看不出您所说的问题。引用异地资源对我来说没有任何用处,因为我没有遵循大多数链接。@MetaMan,我的HTML和GAS包含您需要的所有内容。请重新打开它。如果一切都在为你工作,那就是我的意图,表明一切都在工作。然后,您需要注释第一个返回并取消注释第二个返回,这时您会注意到事情不再起作用了。
.submitData(form);
.submitData([...form].reduce((o, e) => Object.assign(o, {[e.name]: e.value}), {}));