我有两个单独的文件,一个是HTML,另一个是ASP。我看了很多指南,我仍然无法解决它。当我保存这些文件并测试它们时,消息总是“空”。为什么这不起作用?
第一个文件,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>
答案 0 :(得分:2)
假设第一页发布到第二页,document.getElementById("name");
将无法工作,因为该页面上不存在输入 - 您正在尝试访问查询字符串值。
对相关问题的回答似乎是获取查询字符串参数的最可靠方法:https://stackoverflow.com/a/2880929/534109
使用该代码,您可以使用以下代码替换您在第二页上执行的操作:
alert(urlParams["name"]);
您当然必须首先包含引用的代码。
答案 1 :(得分:0)
要做到经典的ASP方式,首先给输入框命名:(可以与id相同)
<input type="text" id="name" name="name" />
现在,当您单击“提交”按钮时,将发送其值。
下一步是在 html_form_action.asp 中使用此类代码:
var x = '<%=Replace(Request("name"), "'", "\'")%>';
alert(x);
现在,无论您在上一页中输入什么内容,都会显示提醒。
答案 2 :(得分: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>
with(不包含<script>
和</script>
):
<%
response.write(request.querystring("TheNameOfTheInput"))
%>
答案 3 :(得分:-1)
从未接触过asp,但根据你的代码,我认为有三个问题。
为输入提供“名称”属性,例如
<input name="name" id="somethingElse">