无论值如何,javascript文本框验证都会触发自定义验证程序错误

时间:2011-10-24 02:28:26

标签: c# javascript asp.net vb.net

我正在尝试根据下拉列表验证文本框,例如如果ddl值为'Day',则文本框值不能超过31.似乎无论我输入什么触发我的自定义验证器错误,我做错了什么,谢谢:

            <asp:TextBox ID="uitxtCamLastVisitDur" runat="server" CssClass="tooltip" 
                         Width="65px" Enabled="False" ToolTip="Indicates a required spending on the member's last visit."></asp:TextBox> 
            <asp:CustomValidator ID="ccvLastVisitDuration" runat="server" 
                ClientValidationFunction="validateDurationType" 
                ControlToValidate="uitxtCamLastVisitDur"
                ErrorMessage="Duration input error"></asp:CustomValidator>

function validateDurationType(src, args) {

    if (document.getElementById('<%= uiddlCamLastVisitDurType.ClientID%>').selectedIndex == 1)
        if (parseInt(document.getElementById('<%= uitxtCamLastVisitDur.ClientID%>').value < 0) || (parseInt(document.getElementById('<%= uitxtCamLastVisitDur.ClientID%>').value > 31))) {
            args.IsValid = false;
            return;
     }
     if (document.getElementById('<%= uiddlCamLastVisitDurType.ClientID%>').selectedIndex == 2)
        if (parseInt(document.getElementById('<%= uitxtCamLastVisitDur.ClientID%>').value < 0) || (parseInt(document.getElementById('<%= uitxtCamLastVisitDur.ClientID%>').value > 12))) {
            args.IsValid = false;
            return;
     }  
  args.IsValid = true;
 }

1 个答案:

答案 0 :(得分:0)

您的功能有javascript错误。你在parseInt上缺少括号:

parseInt(document.getElementById('<%= uitxtCamLastVisitDur.ClientID%>').value < 0)

应该是

parseInt(document.getElementById('<%= uitxtCamLastVisitDur.ClientID%>').value) < 0)

顺便说一下,所有这些都有同样的问题。