Javascript 将GET参数转发到下一个URL
我正在用HTML构建一个表单,由多个页面组成,每个问题一个页面(由于布局原因)。我使用“GET”方法将表单输入的参数传递到下一页,如下所示:Javascript 将GET参数转发到下一个URL,javascript,html,Javascript,Html,我正在用HTML构建一个表单,由多个页面组成,每个问题一个页面(由于布局原因)。我使用“GET”方法将表单输入的参数传递到下一页,如下所示: <form action="example.html" method="GET"> <input type="number" step="0.1" name="Machine" id="Machine" placeholder="Machine"> <input type="image" value="Subm
<form action="example.html" method="GET">
<input type="number" step="0.1" name="Machine" id="Machine" placeholder="Machine">
<input type="image" value="Submit" src="images/button.svg" alt="Forward"/>
</form>
/example2.html?Amount=Input
在下一页中,我使用与上面提到的相同的代码(输入的名称和id不同),但是当我提交该页时,第一页中的参数将不会被重定向(当然)。因此URL看起来有点像这样:
<form action="example.html" method="GET">
<input type="number" step="0.1" name="Machine" id="Machine" placeholder="Machine">
<input type="image" value="Submit" src="images/button.svg" alt="Forward"/>
</form>
/example2.html?Amount=Input
不过,我还需要第一页的参数。基本上是这样的
/example2.html?Machine=Input&Amount=Input
有没有一种简单的方法可以在不使用Javascript的情况下使用Javascript?感谢您的帮助您可以尝试使用javascript将隐藏的
输入
元素动态添加到表单中,使用名称
和值
对从document.location.search中获取参数来创建
然后将此位添加到隐藏的表单字段中,以便在下次提交时传递表单
像这样的
/example2.html?Machine=Input&Amount=Input
函数getParameterByName(名称、url){
如果(!url)url=window.location.href;
name=name.replace(/[\[\]]/g,\\$&);
var regex=new RegExp(“[?&]”+name+”(=([^]*)和|#|$),
结果=regex.exec(url);
如果(!results)返回null;
如果(!results[2])返回“”;
返回组件(结果[2]。替换(/\+/g,”);
}
var Amount=getParameterByName('Amount');
var输入=document.createElement(“输入”);
setAttribute(“类型”、“隐藏”);
input.setAttribute(“名称”、“金额”);
input.setAttribute(“值”,金额);
document.getElementById(“example2”).appendChild(输入)代码>
单击下面的运行代码片段查看工作示例
您可以使用JavaScript隐藏和显示表单的部分(步骤),而不是传递结果并进入下一步
像AngularJS这样的框架将使使用声明性指令实现这一点非常简单。但是一个简单的老JavaScript就足够了
这种方法的另一个优点是,您可以将表单发布到web服务器
功能转到(步骤){
var steps=document.querySelectorAll(“[step]”),
formStep,
不,
我
对于(i=0;i
第一步
向前地
步骤2
返回
向前地
步骤3
返回
提交
Wow!工作起来很有魅力,比重新加载每个页面要快得多。谢谢!谢谢!代码运行良好,尽管我觉得Martin为我的特殊情况指出了一个稍微快一点的替代方案