Forms 获取Google Apps脚本web app中任意表单元素的值
我有一个Google Apps脚本web应用程序,它附带了一个表单,例如:Forms 获取Google Apps脚本web app中任意表单元素的值,forms,google-apps-script,web-applications,Forms,Google Apps Script,Web Applications,我有一个Google Apps脚本web应用程序,它附带了一个表单,例如: <form id="form"> <input type="range" min="0" max="3" name="mb1" value="0"> <input type="range" min="0" max="3" name="mb2" value="0"> <input type="range" min="0" max="3" name="mb3"
<form id="form">
<input type="range" min="0" max="3" name="mb1" value="0">
<input type="range" min="0" max="3" name="mb2" value="0">
<input type="range" min="0" max="3" name="mb3" value="0">
etc...
<input id="submit" type="submit" style="display: none" onclick="this.value='Submitting ...'; google.script.run.withSuccessHandler(formSubmitted) .writeForm(this.parentNode); return false;">
</form>
然而,这种方法对于许多这样的输入来说是低效的(我有大约80个)。更好的方法是在循环中处理值时获取这些值,如下所示:
for(var i = 0; i <= 80; i++) {
var formItemID = "mb"+i;
console.log(form.formItemID);
}
for(var i=0;i您可以始终循环表单元素并获取输入值。这将向服务器发送一个数组
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<form id="form" name="form">
<input class="range" type="range" min="0" max="3" value="0">
<input class="range" type="range" min="0" max="3" value="0">
<input class="range" type="range" min="0" max="3" value="0">
<br>
<input id="button" type="button" onclick="onClick()">
</form>
<script>
function onClick() {
var form = document.getElementById("form");
var vals = [];
for( var i=0; i<form.elements.length; i++ ) {
if( form.elements[i].className === "range" ) {
vals.push(form.elements[i].value);
}
}
google.script.run.getForm(vals);
}
</script>
</body>
</html>
函数onClick(){
var form=document.getElementById(“表单”);
var VAL=[];
对于(var i=0;i服务器端,您的表单将以密钥作为输入名称,值作为输入值发送。您的表单将如下所示:
{
mb1:0,
mb2:1,
mb3:0
}
要访问这些值,您可以使用前面使用过的form.mb1
或form['mb1']
。要使用变量作为键,请始终使用括号[]
表示法
for(var i = 0; i <= 80; i++) {
var formItemID = "mb"+i;
console.log(form[formItemID]);//Note bracket notation
}
太好了!我不需要重新构造任何其他代码就可以了。
for(var i = 0; i <= 80; i++) {
var formItemID = "mb"+i;
console.log(form[formItemID]);//Note bracket notation
}
var valuesArr = Object.keys(form).map(function(key){return form[key];})