BigBoy1337
BigBoy1337

Reputation: 5003

How to get form submit object keys and iterate over them in google apps script?

I have a form that looks like this:

<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>

and in Code.gs

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

}

After I log the formObject. I want to Log formObject.keys- im not sure what the call is as the formObject doesn't seem to be a valid javascript object. Further I would like to do something like for (var key in formObject.keys) {execute something} but Im not sure how to iterate through this formObject either.

Upvotes: 0

Views: 1480

Answers (1)

Anton Dementiev
Anton Dementiev

Reputation: 5716

Have you actually tried this and run into any errors? The for loop for iterating over object properties is

for(var key in object) {

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


}

Another option to log property names

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

Upvotes: 1

Related Questions