0

我有一个输入表单,其中有一个保存数字的隐藏字段。我确定它只能是一个数字(从 -1 到 ...),因为我使用 javascript 设置了值。默认情况下它是 0,我只做 value++ 或 value--。我唯一的代码是这样的:

变量计数器 = 0;

或者

计数器++

或者

柜台 -

或者

(设置隐藏字段中的值) document.getElementById('counterHidden').value = counter;

现在提交后我在 Firefox 中得到一个错误(在 IE 中它正在工作)

错误是:

“Microsoft VBScript 运行时错误‘800a000d’

类型不匹配:'CInt'"

这是我想将输入值转换为 int 的行:

counterValue = CInt(Request.Form("counterHidden"))

如果我在提交表单之前设置警报,我会看到 -1 或 0 或 1 或 2 或 3 或...

那么为什么我在firefox中仍然有错误?

4

2 回答 2

0

错误消息指出 CInt 的参数不能转换为整数,因为它本身不是整数。看起来,当 Request.Form("counterHidden") 不具有整数可转换值(可能是某个空值或未初始化值)时,您正在尝试调用 CInt。在调用 CInt 之前打印 Request.Form("counterHidden") 的值并检查它拥有什么。

于 2013-08-29T12:50:05.187 回答
-1

请记住,整数数据类型仅适用于高达 ~32000 的数字。如果您的计数器高于此值,它也会返回类型不匹配。尝试将您的 CInt 更改为 CLng。

请参阅:http: //msdn.microsoft.com/en-us/library/9e7a57cf (v=vs.84).aspx

于 2013-08-29T13:30:55.837 回答