从上一页传递6位数的asp变量后,HTML输入没有更新

时间:2017-06-13 19:15:37

标签: javascript html asp-classic

我试图将一个变量从一个asp网页传递到另一个网页,但是当我传递超过5位数的变量时,它会导致我的html输入不能更新。

以下是创建变量optionprice 的页面

的index.asp

<%@ Language="VBScript" CodePage=65001 %>

<%
plan = Request("plan")
If plan = "" Then plan = "1"
modelid = Request("modelid")
If modelid = "" Then modelid = "0"
optionprice = Request("optionprice")
If optionprice = "" Then optionprice = "0"
'Responce.Write("optionprice=" & optionprice)

'plan = Request.Form("plan")
'If plan = "" Then plan = "1"
'modelid = Request.Form("modelid")
'If modelid = "" Then modelid = "0"
'Response.Write("plan= " & plan)
'Response.Write("modelid= " & modelid)
dpop = Request.QueryString("dpop")
If dpop = "on" Then dpop = "on"
' Response.Write("dpop= " & dpop)
%>

结果页面是 result_ct.asp

optionprice = Request.Form("optionprice")
    If optionprice <> "" Then optionprice = optionprice * 1
    optionprice_2 = optionprice

这是html表单和输入

的index.asp

<form NAME="form1" action="result_ct.asp" method="post" style="margin:0;">
<dl class="downpaymentform">
                <dt>諸費用・オプション代など</dt>
                <dd><div class="input"><input type="text" name="optionprice" maxlength="7" class="blue" value="<%= optionprice %>"><p>円</p></div></dd>
            </dl>
</form>

我正撞在墙上,非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

我想说这个问题可能就在这段代码中

If optionprice <> "" Then optionprice = optionprice * 1
optionprice_2 = optionprice

而不是这个,请使用以下内容并使用CLng(转换为长函数)

If optionprice <> ""
   optionprice_2 = CLng(optionprice)
else
   optionprice_2 = 0
end if

如果是小数,请改用CDbl

它失败的原因是你试图通过乘以1将其强制转换为数字,意味着你将它乘以一个整数,所以它会尝试将它转换为一个整数,其范围为 - 32,768至32,767。所以任何大于32,767的东西都会失败。

long可以是-2,147,483,648到2,147,483,647范围内的整数。

对于负值,double是双精度浮点数,范围是-1.79769313486232E308到-4.94065645841247E-324; 4.94065645841247E-324至1.79769313486232E308为正值。