在asp中使用POST时,空输入的值是多少?

时间:2013-06-06 23:15:27

标签: asp-classic jscript

我使用asp(JScript作为我的语言)并使用从使用POST发送的表单中获取数据。

具体来说,我有一个文本输入,我想检查它是否为空。如果将其留空,并在被调用页面中包含Response.Write(Request.form('opt2Dur')),则不会打印任何内容(不会打印null或未定义)。

我的想法是,它只是一个空字符串,所以我将其包括在内:Response.Write(Request.form('opt2Dur') === ''),但这会打印false

如果我使用Response.Write(Request.form('opt2Dur') == '')(==不===),它将打印为true。使用===我可以检查的真正价值是什么?或者,在这种情况下仅用==进行检查就足够了吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

在具有“灵活”类型和默认值的脚本语言中,很容易与实际数据类型混淆。

每个Request项的实际类型(QueryString和Form,无关紧要)都是某种Array,因为它还支持多个表单元素,并且提交给ASP处理程序的名称相同。它也在documentation中提到:

  

表单集合由请求正文中的参数名称索引。 Request.Form(element)的值是请求正文中出现的所有元素值的数组

由于===也考虑了类型,因为数组不是字符串,所以它会返回false。

我无法找到确切的实际类型并使用局部变量重现它(它不是任何普通数组)所以如果您热衷于使用严格比较运算符,请检查计数:

Response.Write(Request.Form('opt2Dur').Count === 0);