【发布时间】:2009-01-12 19:06:05
【问题描述】:
有人知道这有什么问题吗?我有一些经典的 ASP 代码可以检查复选框的值,如下所示:
<!-- HTML page: page1.asp --->
<input id="useBilling" name="useBilling" value="Y" type="checkbox" />
在我的代码页中(我们称之为page2.asp):
' code
useBilling = Request.Form("useBilling")
' useBilling should be "Y" here
If useBilling = "Y" Then
' using billing info
Else
' not using billing info
End If
问题是有时,即使我选中复选框,它也会将一个空字符串传递给 Request.Form 并且正在执行错误的代码。我已经放置了一些 Response.Write 调用来跟踪它(这是 VBScript,请记住),有时它说值是“Y”,但后来当我检查条件中的值时,它是空的。
一直在绞尽脑汁想弄清楚为什么这到底是怎么回事,因为一切似乎都是正确的,只是 Request.Form 有时会获取值,有时不会,即使它已被检查。见鬼,有时我会通过注释掉执行代码来测试它,它会说值为“Y”,然后当我取消注释执行代码时,它又神秘地空了。
编辑: 奇怪的是,如果我在条件中包含一个 Response.End 标记,它将按我的预期运行,但是当我删除 Response.End 它不再找到复选框的值(返回空)即使在一分钟前(未注释 Response.End)它输出一条测试消息,上面写着“好的,复选框已选中”。随着 Response.End 注释掉,它说“未选中复选框”。
我什至尝试输出复选框的值(如果选中则应该是“Y”,如果没有选中则什么都没有)。而且,如果条件包含 Response.End,它肯定会输出“Y”,如果我删除 Response.End,它是空的。
【问题讨论】:
标签: asp-classic