Forms 获取Google Apps脚本web app中任意表单元素的值

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"

我有一个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" 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];})