【问题标题】:javascript textbox validation fires custom validator error regardless of value无论值如何,javascript文本框验证都会触发自定义验证器错误
【发布时间】:2011-10-24 02:28:26
【问题描述】:

我正在尝试基于下拉列表验证文本框,例如如果 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;
 }

【问题讨论】:

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


    【解决方案1】:

    您的函数中有 javascript 错误。您在 parseInt 上缺少括号:

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

    应该是

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

    顺便说一句,他们都有同样的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多