0

我无法将 client.html 中表单输入中的值打印到 server.html 中的表中。它必须用 Javascript 编写,并使用 GET 方法作为表单。

客户端.html:

<form action="server.html" method="get">
<p>
 Name: 
 <input type="text" id="txtname" name="txtname" />    
</p>
</form>

服务器.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>
4

1 回答 1

0

这里有几件事:

您正在尝试将innerHTMLof设置#idnamehoten.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>
于 2017-10-21T08:38:36.153 回答