Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么当我点击提交时表单的参数消失了?_Javascript_Google Apps Script - Fatal编程技术网

Javascript 为什么当我点击提交时表单的参数消失了?

Javascript 为什么当我点击提交时表单的参数消失了?,javascript,google-apps-script,Javascript,Google Apps Script,在我的google应用程序脚本中,我有一个html页面,其中有一个表单,其动作属性是根据输入值(使用javascript)动态创建的,我使用参数创建动作url。在插入一些输入值之后,操作url被正确创建(我检查了代码),但是当我单击submit按钮时,操作url打开,但没有参数 我尝试了方法get,post,但我有一些结果,新的url被打开,但没有参数,只有“?”字符。但是,如果我对link和href属性执行相同的过程,它就可以正常工作。我注意到参数没有到达doget函数 包括index.htm

在我的google应用程序脚本中,我有一个html页面,其中有一个表单,其动作属性是根据输入值(使用javascript)动态创建的,我使用参数创建动作url。在插入一些输入值之后,操作url被正确创建(我检查了代码),但是当我单击submit按钮时,操作url打开,但没有参数

我尝试了方法get,post,但我有一些结果,新的url被打开,但没有参数,只有“?”字符。但是,如果我对link和href属性执行相同的过程,它就可以正常工作。我注意到参数没有到达doget函数

包括index.html和app.gs文件

<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+"&amp;controllo="+numero+"&amp;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设置操作(这是错误的:DOM
action
属性需要一个普通URL,而不是HTML编码的URL)

只需在
action
属性中设置基本URL,并给出表单控件的名称


提波罗吉亚酒店
炮制
里希迪·阿西斯滕扎表格

我不清楚您在做什么,如果您正在刷新页面,那么输入肯定会消失。可能您需要的是e.preventDefault并手动发送Xhr