Javascript 为什么当我点击提交时表单的参数消失了?
在我的google应用程序脚本中,我有一个html页面,其中有一个表单,其动作属性是根据输入值(使用javascript)动态创建的,我使用参数创建动作url。在插入一些输入值之后,操作url被正确创建(我检查了代码),但是当我单击submit按钮时,操作url打开,但没有参数 我尝试了方法get,post,但我有一些结果,新的url被打开,但没有参数,只有“?”字符。但是,如果我对link和href属性执行相同的过程,它就可以正常工作。我注意到参数没有到达doget函数 包括index.html和app.gs文件Javascript 为什么当我点击提交时表单的参数消失了?,javascript,google-apps-script,Javascript,Google Apps Script,在我的google应用程序脚本中,我有一个html页面,其中有一个表单,其动作属性是根据输入值(使用javascript)动态创建的,我使用参数创建动作url。在插入一些输入值之后,操作url被正确创建(我检查了代码),但是当我单击submit按钮时,操作url打开,但没有参数 我尝试了方法get,post,但我有一些结果,新的url被打开,但没有参数,只有“?”字符。但是,如果我对link和href属性执行相同的过程,它就可以正常工作。我注意到参数没有到达doget函数 包括index.htm
<form id="myForm" action="#">
<div class="form-row">
<div class="col">
<input type="text" class="form-control" placeholder="Numero" id="numero">
</div>
<div class="col">
<div class="form-group">
<select id="tipologia" class="form-control">
<option selected>Tipologia supporto</option>
<option >concorsi</option>
</select>
</div>
</div>
</div>
<button type="submit" class="btn-get-started scrollto">Richiedi assistenza Form</button><!--NOT WORK-->
</form>
<a href="#" id="btn" class="btn-get-started scrollto">Richiedi assistenza</a><!--WORK-->
<script>
document.getElementById("tipologia").addEventListener("change", redirect);
function redirect(){
var nome =document.getElementById("nome").value;
var numero =document.getElementById("numero").value;
var opzioni = document.getElementById("tipologia");
var selezionato = opzioni.options[opzioni.selectedIndex].value;
document.getElementById("btn").href="https://script.google.com/macros/s/AKfycbxia-_rMYlvVjrlyGGd7zRcb1CD5hSYe6W-mLldzxY__8I2b3Q/exec?supporto="+selezionato+"&controllo="+numero+"&nome="+nome;
document.getElementById("myForm").action ="https://script.google.com/macros/s/AKfycbxia-_rMYlvVjrlyGGd7zRcb1CD5hSYe6W-mLldzxY__8I2b3Q/exec?supporto="+selezionato+"&controllo="+numero+"&nome="+nome;
}
</script>
function doGet(e) {
Logger.log(e.parameter.supporto);
var supporto = e.parameter.supporto;
var numero= e.parameter.controllo;
var nome= e.parameter.nome;
}
提波罗吉亚酒店
炮制
里希迪·阿西斯滕扎表格
document.getElementById(“tipologia”).addEventListener(“更改”,重定向);
函数重定向(){
var nome=document.getElementById(“nome”).value;
var numero=document.getElementById(“numero”).value;
var opzioni=document.getElementById(“tipologia”);
var selezionato=opzioni.options[opzioni.selectedIndex].value;
document.getElementById(“btn”).href=”https://script.google.com/macros/s/AKfycbxia-_rMYlvVjrlyGGd7zRcb1CD5hSYe6W-mLldzxY__8I2b3Q/exec?supporto=“+selezionato+”&controllo=“+numero+”&nome=“+nome;
document.getElementById(“myForm”).action=”https://script.google.com/macros/s/AKfycbxia-_rMYlvVjrlyGGd7zRcb1CD5hSYe6W-mLldzxY__8I2b3Q/exec?supporto=“+selezionato+”&;controllo=“+numero+”&;nome=“+nome;
}
函数doGet(e){
Logger.log(e.parameter.supporto);
var supporto=e.parameter.supporto;
var numero=e.parameter.controllo;
var nome=e.parameter.nome;
}
我不明白为什么当您使用
method=“GET”
(默认设置)提交表单时,参数消失了,在操作中指定的URL被用作基础
查询字符串(您使用JavaScript添加的)将从中删除,并替换为使用来自成功表单控件的数据构造的字符串
由于没有表单控件具有名称,因此没有成功的控件,因此没有数据。这将为您提供一个空白查询字符串
不要试图用JavaScript设置操作(这是错误的:DOMaction
属性需要一个普通URL,而不是HTML编码的URL)
只需在action
属性中设置基本URL,并给出表单控件的名称
提波罗吉亚酒店
炮制
里希迪·阿西斯滕扎表格
我不清楚您在做什么,如果您正在刷新页面,那么输入肯定会消失。可能您需要的是e.preventDefault并手动发送Xhr