Google Apps 脚本:提交表单后重新加载页面
Google Apps Script: reload page after submit form
我终于到了我的应用程序的最后一步,只有一件事我不知道如何编写:我正在使用 iframe 在 Google Apps 脚本中加载一个页面,其中我有一个表格。
我可以在 Google 电子表格中写入数据,如果数据插入正确,我会收到一条成功消息。我唯一无法得到的是如何在几秒钟后刷新框架以确保用户阅读消息...
有什么帮助吗?
非常感谢!
那是我的代码(感谢 @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');
好的。好吧,我想就是这样。你只需要刷新页面。你可以在那里放一个按钮,说提交另一个只会刷新页面的表单。我想你可以使用 Javascript 计时器在 setResponse();
后 10 秒刷新页面
我终于到了我的应用程序的最后一步,只有一件事我不知道如何编写:我正在使用 iframe 在 Google Apps 脚本中加载一个页面,其中我有一个表格。
我可以在 Google 电子表格中写入数据,如果数据插入正确,我会收到一条成功消息。我唯一无法得到的是如何在几秒钟后刷新框架以确保用户阅读消息...
有什么帮助吗?
非常感谢!
那是我的代码(感谢 @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');
好的。好吧,我想就是这样。你只需要刷新页面。你可以在那里放一个按钮,说提交另一个只会刷新页面的表单。我想你可以使用 Javascript 计时器在 setResponse();
后 10 秒刷新页面