Javascript - 通过获取方式获得值通过获取方法
问题描述:
我无法将client.html中表单的输入值打印到server.html中的表中。它必须用Javascript编写,并使用GET方法进行编写。Javascript - 通过获取方式获得值通过获取方法
client.html:
<form action="server.html" method="get">
<p>
Name:
<input type="text" id="txtname" name="txtname" />
</p>
</form>
server.html:
<head>
<script type="text/javascript">
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,
function (m, key, value) {
vars[key] = value;
});
return vars;
}
var name= unescape(getUrlVars()[document.getElementById("txtname")]);
document.getElementById("idname").innerHTML=name;
</script>
</head>
<body>
<table>
<tr>
<td>Name:</td>
<td id="idname"></td>
</tr>
</table>
<body>
答
有几件事情在这里:
你想的#idname
的innerHTML
设置为hoten.value
,这未定义。
getUrlVars()[docuemnt.getElementById("txtname")]
也不验证。你可以简单地使用getUrlVars().txtname
来获取查询参数。
您还试图在DOM被处理之前设置该值 - JS无法设置该元素的值,因为它尚未放置在页面上。
修复错误和移动JS body标签结束修复此:
<head>
</head>
<body>
<table>
<tr>
<td>Name:</td>
<td id="idname"></td>
</tr>
</table>
<script type="text/javascript">
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,
function (m, key, value) {
vars[key] = value;
});
return vars;
}
var name= unescape(getUrlVars().txtname);
document.getElementById("idname").innerHTML = name;
</script>
</body>
+0
@Xufox从解释中删除了该行,我改变了修复方法,并忘记更改解释以反映 –
我认为这个问题可以帮助你(HTTPS [如何获得来自GET参数的值?]:/ /*.com/questions/979975/how-to-get-the-value-from-the-get-parameters) – 3Dos
'getUrlVars()[document.getElementById(“txtname”)]'将始终访问'vars [“ [object HTMLInputElement]“]'。你的意思是'getUrlVars()[document.getElementById(“txtname”).value]'? – Xufox