2017-09-10 6 views
1

enter image description hereへのアクセスHTMLサービスフォームオブジェクト

は、私はGoogleのシートからロードされた情報でフォームを送信しようとしているhttps://developers.google.com/apps-script/guides/html/communicationて働いています。クライアント側では、私は(記事にフォームの例に大きく基づき)持っている:サーバー側(code.gs)で

<!DOCTYPE html> 
<html> 
<head> 
    <base target="_top"> 
    <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> 
</head> 
<body> 
    <form id="myForm" onsubmit="handleFormSubmit(this)"> 
     <div> 
      <select id="optionList" name="email"> 
       <option>Loading...</option> 
      </select> 
     </div> 
     <br> 
     <div> 
      <textarea name="message" rows="10" cols="30"> 
      The cat was playing in the garden. 
      </textarea> 
     </div> 
     <input type="submit" value="Submit" /> 
    </form> 

私が持っている:

function processForm(formObject) { 

    Logger.log('in here'); 
    var formBlob = formObject.myFile; 
    var driveFile = DriveApp.createFile(formBlob); 

return driveFile.getUrl(); 
} 

私が提出していることがわかります私はログの中に「ここに」あると思うので働いています。 processForm関数内からフォームフィールドにアクセスするにはどうすればよいですか?

答えて

1

このチャンクは私には意味がありません

var formBlob = formObject.myFile; 

あなたのフォームは、その「名前」属性「のmyFile」に設定された入力が含まれていません。 「送信」をクリックすると、「formObject」変数は次のようになります。

{ 
email: "Loading...", //from <select id="optionList" name="email"> 
message: "The cat was playing in the garden." //from <textarea name="message"> 

} 
+0

どうかしてくれてありがとうございました。とにかくこれをデバッグするには?私は、AJAXを使用するときにブラウザコンソールを使用できることを知っています。 – user61629

+0

'handleFormSubmit()'のようなクライアント側のJS関数でconsole.log()を使用できます。サーバー側(.gsファイル)には、ブラウザオブジェクトモデルへのアクセスがないため、Logger.log()を使用する必要があります。 –

+0

ありがとう、私はそれを試してみます。 – user61629

関連する問題