我有一个代码,它将向另一个页面显示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
,它包含您传入的参数名称的键:)