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 casecase 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