使用Javascript将FORM_1(page1.html)的数据传递给FORM_2(page.html)


Pass the Data of FORM_1 (page1.html ) to FORM_2 (page.html) using Javascript

我有一个代码,它将向另一个页面显示form1的值。现在,这个+(加号)继续显示和替换空格。这里有人能帮我吗?

非常感谢。

以下是我的代码:

Page1.html

<form type=get action="page2.html">
  <table>
    <tr>
      <td>First Name:</td>
      <td><input type=text name=firstname size=10></td>
    </tr>
    <tr>
      <td>Last
        Name:
      </td>
      <td><input type=text name=lastname size=10></td>
    </tr>
    <tr>
      <td>Age:</td>
      <td><input type=text name=age size=10
        id="age"></td>
    </tr>
    <tr>
      <td colspan=2><input type=submit
        value="Submit"> </td>
    </tr>
  </table>
</form>

Page2.html

<script LANGUAGE="JavaScript"> 
  function getParams() {
    var idx = document.URL.indexOf('?');
    var params = new Array();
    if (idx != -1) {
      var pairs = document.URL.substring(idx + 1,
        document.URL.length).split('&');
      for (var i = 0; i < pairs.length; i++) {
        nameVal = pairs[i].split('=');
        params[nameVal[0]] = nameVal[1];
      }
    }
    return params;
  }
  params = getParams();
  firstname =
     unescape(params["firstname"]);
  lastname =
     unescape(params["lastname"]);
  age = unescape(params["age"]);
  ages = age;
  document.write("firstname = " + firstname + "<br>");
  document.write("lastname = " + lastname + "<br>");
  document.write("<input type=text name=age size=10 value=" + ages +
    ">");
</script>

您可以使用decodeURIComponent将加号解码回空格,并在第一页使用encodeURIComponent对其进行编码。

您也不需要太多地使用子字符串来尝试手动解析URL:

var url = location.href.split("?");
var params = url[1].split("&");
var data = {};
for (var i = 0; i < params.length; i++)
{
    var param = params[i].split("=");
    data[param[0]] = param[1];
}

在该代码的末尾,您将有一个对象data,它包含您传入的参数名称的键:)