2017-10-21 217 views
0

我无法将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> 
+1

我认为这个问题可以帮助你(HTTPS [如何获得来自GET参数的值?]:/ /stackoverflow.com/questions/979975/how-to-get-the-value-from-the-get-parameters) – 3Dos

+1

'getUrlVars()[document.getElementById(“txtname”)]'将始终访问'vars [“ [object HTMLInputElement]“]'。你的意思是'getUrlVars()[document.getElementById(“txtname”).value]'? – Xufox

回答

0

有几件事情在这里:

你想的#idnameinnerHTML设置为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从解释中删除了该行,我改变了修复方法,并忘记更改解释以反映 –