Javascript 将GET参数转发到下一个URL

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

我正在用HTML构建一个表单,由多个页面组成,每个问题一个页面(由于布局原因)。我使用“GET”方法将表单输入的参数传递到下一页,如下所示:

<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为我的特殊情况指出了一个稍微快一点的替代方案