2017-06-21 90 views
0

我终于在我的应用程序的决赛步骤中,只有一件事我无法弄清楚如何编写:我使用iframe在Google Apps脚本中加载页面我有一个表格。Google Apps脚本:提交表单后重新加载页面

我可以在Google Spreadsheet中写入数据,并且如果数据被正确插入,我会收到成功的消息。我唯一不能得到的是如何在几秒钟后刷新帧,以确保用户阅读消息...

任何帮助吗?

非常感谢!

这是我的代码(学分@Cooper帮助了我很多与此 - 他基本上写的代码)

<body> 
     <div id="errorMessage" style="display:none;"> 
     <h3>Errore</h3> 
     <p>Tutti i campi devono essere compilati.</p></div> 
     <div id="data"> 
      <form name="reqForm" id="reqForm" method="post" action="" accept-charset="UTF-8"> 
       <label for="area">* Area</label> 
      <select id="area"> 
       <option value="">--Seleziona--</option> 
       <option value="1">1</option> 
       <option value="2">2</option> 
       <option value="3">3</option> 
       <option value="4">4</option> 
       <option value="5">5</option> 
       <option value="6">6</option> 
      </select> 
      <br /> 
       <label for="nome">* Oggetto:</label> 
      <input type="text" id="oggetto" name="oggetto" /> 
      <br /> 
      <br /> 
       <label for="nome">* Nome:</label> 
      <input type="text" id="nome" name="nome" /> 
      <br /> 
       <label for="cognome">* Cognome:</label> 
      <input type="text" id="cognome" name="cognome" /> 
      <br /> 
       <label for="mat">Matricola:</label> 
      <input type="text" pattern="[0-9]{6}" id="mat" name="mat" /> 
      <br /> 
       <label for="mail">* E-mail:</label> 
      <input type="mail" id="mail" name="mail"/> 
      <br /> 
       <label for="testo">* Richiesta:</label> 
      <textarea id="testo" name="testo"></textarea> 
      <br /> 
      <button type="button" value="Invia" id="btnSend" class="button mainBtn">Invia</button> 
    </form> 
     </div> 
     <div id="resp" style="display:none;"> 
     <h3>Inviato</h3> 
     <p>I tuoi dati sono stati registrati.<br/>Riceverai risposta all'indirizzo indicato.</p> 
     </div> 
     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
     <script> 
    $(function() { 
    $('#btnSend').click(validate); 
    }); 

    function setResponse(a) 
    { 
    if(a) 
    { 
     $('#data').css('display','none'); 
     $('#resp').css('display','block'); 
    } 
    } 

    function validate() 
    { 
     var area = document.getElementById('area').value; 
     var n = document.getElementById('nome').value; 
     var c = document.getElementById('cognome').value; 
     var m = document.getElementById('mat').value; 
     var em= document.getElementById('mail').value; 
     var t = document.getElementById('testo').value; 
     var o = document.getElementById('oggetto').value; 

    var a = [n, c, m, em, area, o, t, "", "Ricevuta"]; 

    if(area && n && c && em && o && t) 
    { 
     google.script.run 
     .withSuccessHandler(setResponse) 
     .getData(a); 
     $('#errorMessage').css('display','none'); 
     return true; 
    } 
    else 
    { 
     $('#errorMessage').css('display','block'); 
    } 
    } 

    function loadTxt(from,to) 
    { 
     document.getElementById(to).value = document.getElementById(from).value; 
    } 

console.log('My Code'); 

+0

我需要更多地了解你在做什么之前可以帮忙。你能分享你的代码和电子表格吗? – Cooper

+0

@Cooper嗨!代码与您之前帮助我的代码相同,我将编辑我的问题并在几秒内发布。 – Simone

+0

@Cooper我使用代码编辑了问题。基本上,我必须在显示信息(Inviato等)后重新加载此页面,等待几秒钟让用户阅读它。 – Simone

回答

0

好。那么我认为就是这样。你只需刷新页面。你可以在那里放一个按钮,提交另一个只刷新页面的表单。我想你可以使用JavaScript Timer在setResponse()后10秒刷新页面;

+0

没有任何更改。我仍然看到消息,直到我使用按钮或按F5刷新页面... – Simone

+0

我做到了!我使用了一个基本的函数,如'var ifr = document.getElementById('myFrame);源= “mySourceURL”; ifr.src =“”; ifr.src =“source”;'以这种方式,我可以在每次按下访问我的表单页面的按钮时重新加载iframe;) – Simone

+0

太棒了。那么你刚刚完成了吗? – Cooper

相关问题