1

我有两个单独的文件,一个是 HTML,另一个是 ASP。我看了很多指南,我仍然无法修复它。当我保存这些文件并对其进行测试时,消息始终为“null”。为什么这不起作用?

第一个文件,html:

    <!DOCTYPE html>
    <html>
    <body>
    <form name="formName" action="html_form_action.asp" method="get">
    <input type="text" id="name">
    <input type="submit" value="Enter">
    </form>
    </body>
    </html>

二、asp文件:

    <!DOCTYPE html>
    <html>
    <body>
    <script>
    var x=document.getElementById("name");
    alert(x);
    </script>
    </body>
    </html>
4

4 回答 4

2

假设第一页发布到第二页,document.getElementById("name");将永远无法工作,因为该页面上不存在输入 - 您正在尝试访问查询字符串值的内容。

这个对相关问题的回答似乎是获取查询字符串参数的最可靠方法:https ://stackoverflow.com/a/2880929/534109

使用该代码,您将在第二页上所做的替换为:

alert(urlParams["name"]);

您当然必须首先包含引用的代码。

于 2013-06-12T05:05:13.400 回答
0

做经典的ASP方式,先给输入框起个名字:(可以和id一样)

<input type="text" id="name" name="name" />

现在,当您单击提交按钮时,它的值将被发送。

下一步是在html_form_action.asp中有这样的代码:

var x = '<%=Replace(Request("name"), "'", "\'")%>';
alert(x);

现在,这将显示您在上一页中键入的任何内容的警报。

于 2013-06-12T07:36:59.190 回答
0

当您在 html 中使用表单时,您应该使用name=""... 您的 html 文件的 html 代码应该是:

<html>
<body>
<form name="formName" action="html_form_action.asp" method="get">
<input type="text" id="name" name="TheNameOfTheInput">
<input type="submit" value="Enter">
</form>
</body>
</html>

如果你有一个 asp 文件,你应该使用 asp... 替换这个:

<script>
var x=document.getElementById("name");
alert(x);
</script>

有(没有<script></script>):

<%
response.write(request.querystring("TheNameOfTheInput"))
%>

教程在这里:http ://www.w3schools.com/asp/asp_inputforms.asp :)

于 2013-06-15T15:06:37.073 回答
-1

从未接触过asp,但根据您的代码,我认为存在三个问题。

  • 表单的方法应该是 POST。
  • 给输入另一个id而不是'name'
  • 给输入一个“名称”属性,例如

    <input name="name" id="somethingElse">

于 2013-06-12T05:06:50.267 回答