提问者:小点点

我如何通过只使用HTML和JS在HTML页面之间传递数组?


我在test0.html文件中有这段简单的代码,它将数据发送到test1.html:

<body>
    <form action="test1.html">
        <input type="text" name="array[0]" placeholder="val1" id="">
        <input type="text" name="array[1]" placeholder="val2" id="">
        <input type="submit" value="send">
    </form>

</body>

然后在test1.html上有这段代码,它应该将一些新数据发送回test0:

<body>
<form action="test0.html">
    <input type="text" name="array[2]" placeholder="val3" id="">
    <input type="text" name="array[3]" placeholder="val4" id="">
    <input type="submit" value="send back">
</form>

当我将数据发送回test0时,我只是得到test1.html中键入的最新数据。我想知道如何跟踪以前从test0发送的内容。

谢谢!


共1个答案

匿名用户

由于默认的表单方法是GET,表单参数将使用查询参数传递

因此您可以为每个查询参数向窗体中添加一个隐藏的输入字段。

<body>
  <form action="test0.html">
    <input type="text" name="array[2]" placeholder="val3">
    <input type="text" name="array[3]" placeholder="val4">
    <input type="submit" value="send back">
  </form>

  <script>
    (function() {
      var form = document.querySelector("form");
      var queryParams = new URLSearchParams(location.search);
    
      for (var key of params.keys()) {
        var input = document.createElement("input");
        input.type = "hidden";
        input.name = key;
        input.value = queryParams.get(key);
        form.insertBefore(input, form.firstChild);
      }
    })();
  </script>
</body>

相关问题