声明变量的问题

Issues in declaring variables

我正在尝试为当地公司制作申请表(毕业所需的项目)。

这是我遇到问题的页面的一部分:

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

<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

在此表格中,用户需要在 from dateto date table 行中 select 类型后插入日、月、年请愿书例如:出生 在脚本中,我声明了变量 fromdate2todate2,它们应该包含日期,例如:“03/12/2015” 在 select 案例 case 30 中,datediff 函数会给出 fromdate2 todate2 之间的天数,如果小于 45 则会出现一个消息框(是的,我知道它只适用于 IE)说天数超过了限制

问题是当我测试它并点击submit没有任何反应 我很确定错误在 fromdate2 todate2 变量中 帮助我,提前谢谢你

我对您尝试收集表单数据的方式感到困惑。除非我遗漏了什么,否则您似乎在混合使用服务器端和客户端代码。

ClassicASP是服务端技术,VBScript是它常用的语言,(可以指定JavaScript)

您的子例程包含在 <SCRIPT LANGUAGE="VBSCRIPT"> 中。这意味着它将是 运行 客户端 - 如您所知,它将仅适用于 IE

我认为您需要做的是先将您的代码移动到服务器端。您可以将其放在 <% %> 定界符内,或使用 <SCRIPT LANGUAGE="VBSCRIPT" runat="server">

使用请求对象代替 onclick 事件来填充从您的表单字段中检索到的变量,例如 cboFromDateDay = Request.Form("cboFromDateDay")

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

如果您迫切需要弹出式警报,那么您可以在页面加载时触发它们,并将触发它们的代码放在 asp 条件语句中,以便它仅在特定条件下出现在服务器输出中被满足。我建议虽然这比它的价值更麻烦