Javascript编写Asp时需要注意的一些地方
论坛里面有不少人在使用Javascript编写Asp,经常有人在论坛提问,为什么Asp对象在对比指定值时返回结果不对?现在在这里给大家写点关于使用Javascript编写Asp一些需要注意的地方。
最常见的问题:
Code:
Response.Write(Request.Form("Key") == "")
返回的结果怎么都是"False"。在这里,我们使用typeof就可以发现:Request.Form("Key")返回的其实是一个object类型对象,而不是最终的值。所以,我们需要取出最终的值才能够做出正确的判断。可以使用如下解决方法:
Code:
var Nothing; // 兼容不存在undefined的老版本jscript
Response.Write(Request.Form("Key").Item == Nothing);
Response.Write(Request.Form("Key").Item === Nothing);
// IE 5.5 之后undefined已经是一个常量,可直接访问(JScript版本是跟随IE升级的)
Response.Write(Request.Form("Key").Item == undefined);
Response.Write(Request.Form("Key").Item === undefined);
Response.Write(Request.Form("Key").Item == null);
所以,取值时我们如果使用完整的取值方式,就不会出现那些奇怪的现象。
下面说一些Asp中取值的例子:
例:Request.Form("Key")
取值:Request.Form.Item("Key").Item
或:Request.Form("Key").Item
注意这里的Request.Form.Item,直接当属性访问时返回的是一个字符串对象(值类型),作为一个js的“function”使用时返回的是一个object。
Request.Cookies、Request.QueryString、Request.ServerVariables的取值写法同上。vbs中的简写Request("Key")在javascript中,对应的是Request.Item("Key")
例:rs("FiledName")
取值:rs.Fields.Item("FiledName").Value
或:rs.Fields("FiledName").Value
或:rs("FiledName").Value