如何获取表单提交对象键并在谷歌应用程序脚本中迭代它们?

时间:2017-06-15 19:59:06

标签: google-apps-script

我的表格看起来像这样:

<form id="myForm" onsubmit="handleFormSubmit(this)">
      <label for="Identity">Identity</label>
      <select class="input-combobox" id="parentAttr" value="Identity" name="Identity">
         <? var dropdownOptions = getDropdownOptions(); ?>
          <option name="Identity" value="placeholder"></option>
          <? 
            for(i=0; i<dropdownOptions.length;i++){
          ?>
          <option value= "<?= dropdownOptions[i] ?> "> <?= dropdownOptions[i] ?> </option>
          <? } ?>
      </select>
      <input name="myFile" type="file" />
      <input type="submit" value="Submit" />
    </form>
<script>
      // Prevent forms from submitting.
      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);

      function handleFormSubmit(formObject) {
        google.script.run.withSuccessHandler(updateUrl).processForm(formObject);
      }
      function updateUrl(url) {
        var div = document.getElementById('output');
        div.innerHTML = '<a href="' + url + '">Got it!</a>';
      }
    </script>

和Code.gs

function processForm(formObject) {
  Logger.log(formObject);    //logs {myFile=FileUpload, Identity=c } Those are the values I picked in my form. 

}

我记录formObject后。我想记录formObject.keys-我不知道调用是什么,因为formObject似乎不是一个有效的javascript对象。此外,我想做for (var key in formObject.keys) {execute something}之类的事情,但我不知道如何迭代这个formObject。

1 个答案:

答案 0 :(得分:1)

你真的试过这个并遇到任何错误吗?迭代对象属性的for循环是

for(var key in object) {

Logger.log(key); // logs property name
Logger.log(object[key]); //logs value for the property


}

记录属性名称的另一个选项

Logger.log(Object.keys(yourFormObject));