Vbscript 声明变量中的问题

Vbscript 声明变量中的问题,vbscript,asp-classic,Vbscript,Asp Classic,我正在为一家当地公司写一份请愿书(这是毕业的必修项目) 这是我的页面中我面临的问题的一部分: <FORM METHOD="POST" ACTION="InsertPetition.asp?EmpID=<%=Request.QueryString("EmpID")%>&BRANCH=<%=Session("BRANCH")%>" name=frmNewClaim> <table> <tr>

我正在为一家当地公司写一份请愿书(这是毕业的必修项目)

这是我的页面中我面临的问题的一部分:

<FORM METHOD="POST"  ACTION="InsertPetition.asp?EmpID=<%=Request.QueryString("EmpID")%>&BRANCH=<%=Session("BRANCH")%>" name=frmNewClaim>
<table>
<tr>                        
<td>From Date</td>
<td><SELECT name=cboFromDateDay>
<%For i = 1 To 31%>
<%if i=day(date()) then%>
<OPTION VALUE="<%=i%>" Selected="True"><%=i%></OPTION>
<%else%>
<OPTION VALUE="<%=i%>"><%=i%></OPTION>
<%end if%>
<%Next%>
</SELECT>

<SELECT name=cboFromDateMonth>
<%For i = 1 To 12%>
<%if i=month(date()) then%>
<OPTION VALUE="<%=i%>" Selected="True"><%=MonthName(i)%></OPTION>
<%else%>
<OPTION VALUE="<%=i%>"><%=MonthName(i)%></OPTION>
<%end if%>
<%Next%>
</SELECT>

<SELECT name=cboFromDateYear>
<%For i = Year(Date())-1 To Year(Date()) + 10%>
<%if i=year(date()) then%>
<OPTION VALUE="<%=i%>" Selected="True"><%=i%></OPTION>
<%else%>
<OPTION VALUE="<%=i%>"><%=i%></OPTION>
<%end if%>
<%Next%>
</SELECT>
</td>   
<td><INPUT type="button" value="Submit" name=cmdSubmit></td>


</tr>
</table>

从日期开始


子cmdClose_OnClick()
窗户关上
端接头
Sub-cmdSubmit_OnClick()
Dim fromdate2
暗淡的今天
fromdate2=“Trim(frmNewClaim.cboFromDateDay.Value)&”/“&Trim(frmNewClaim.cboFromDateMonth.Value)&”/“&Trim(frmNewClaim.cboFromDateYear.Value)”
todate2=“Trim(frmNewClaim.cboToDateDay.Value)&”/“&Trim(frmNewClaim.cboToDateMonth.Value)&”/“&Trim(frmNewClaim.cboToDateYear.Value)”
选择案例frmNewClaim.txtPTNGroup.Value
“如果类型是出生
案例30
如果DateDiff(“d”,从Date2到Date2)>45,则
msgbox“天数值超出了允许的天数限制!”,16,“数据输入错误”
frmNewClaim.txtPTNGroup.focus
出口接头
如果结束
其他情况
结束选择
frmNewClaim.submit
端接头

在此表单中,用户需要在选择申请类型(例如:出生)后,在
起始日期
截止日期
表行中插入日、月、年 在脚本中,我声明了变量
fromdate2
todate2
,它们应该包含日期,例如:“03/12/2015” 在select case
case 30
中,会出现
datediff
函数,它会告诉我从
日期2
到日期2
之间的天数,如果少于45天,则会出现一个消息框(是的,我知道它只在IE上起作用)说天数超过了限制

当我测试它并单击
submit
时,问题就出现了 我很确定错误在
fromdate2
todate2
变量中
请帮助我并提前向您表示感谢

我不清楚您是如何试图收集表单数据的。除非我遗漏了一些东西,否则您似乎在混合服务器端和客户端代码

经典ASP是一种服务器端技术,VBScript是它通常使用的语言(如果愿意,可以指定JavaScript)

您的子例程包含在
中。这意味着它将在客户端运行——正如您所知,它只在IE上工作

我认为您需要做的是首先将代码移动到服务器端。您可以通过将其放入
分隔符中或使用

不使用onclick事件,而是使用request对象填充从表单字段检索到的变量,例如
cboFromDateDay=request.form(“cboFromDateDay”)

最后,您的vbs脚本似乎旨在生成弹出警报。这不适用于服务器端代码。您可以使用
Response.Write
在页面文本中显示错误消息

如果您迫切需要弹出警报,那么可以在页面加载时触发它们,并将触发它们的代码放在asp条件语句中,以便仅在满足某些条件时才会显示在服务器输出中。我想说的是,这比它的价值更麻烦

<SCRIPT LANGUAGE="VBSCRIPT">

Sub cmdClose_OnClick()
    window.close
End Sub

Sub cmdSubmit_OnClick()
    Dim fromdate2
    Dim todate2
    fromdate2="Trim(frmNewClaim.cboFromDateDay.Value) & "/" & Trim(frmNewClaim.cboFromDateMonth.Value) & "/" & Trim(frmNewClaim.cboFromDateYear.Value)" 
    todate2="Trim(frmNewClaim.cboToDateDay.Value) & "/" & Trim(frmNewClaim.cboToDateMonth.Value) & "/" & Trim(frmNewClaim.cboToDateYear.Value)"

    Select case frmNewClaim.txtPTNGroup.Value
        'If type is Birth
        case 30
               if DateDiff("d",fromdate2,todate2) > 45 then
               msgbox "Days value exceeded the limit of days allowed!",16,"Data Entry Error"
               frmNewClaim.txtPTNGroup.focus
               Exit Sub
               end if
case else 
        End Select
frmNewClaim.submit

    End Sub