验证器不在asp.net中工作

时间:2013-05-15 07:37:58

标签: asp.net

我需要对同一个文本框使用2个验证(它接受输入的学年名称):

  1. 正则表达式验证程序,仅允许以 YYYY-YY 格式输入名称。我有这个工作:

    <asp:RegularExpressionValidator id="txtAcademicYearName_RegularExpressionValidator2" runat="server" ControlToValidate="txtAcademicYearName" ErrorMessage="Enter academic year name in format YYYY-YY" ValidationExpression="(\b19|\b20)\d\d-\d\d" ForeColor="Red" Display="None"  ValidationGroup="AcademicYear"></asp:RegularExpressionValidator>
    
  2. 当用户输入年份名称时,to值显然应大于from值(例如,2012-13是正确的,但2013-12是错误的)。我已为此添加了客户端验证功能:

      function checkAcademicYear(source, args) {
      alert("yeah");
      var sAcadYearName = document.getElementById('<%= txtAcademicYearName.ClientID%>').value;
      var year = new Array;
      year = sAcadYearName.split("-");
      var yearStart = year[0];
      var yearEnd = year[1];
    
      var checkYearStart = (sAcadYearName.charAt(2) + sAcadYearName.charAt(3));
    
      if (yearEnd <= checkYearStart) {
          arguments.IsValid = false;
    
      }
      else {
          arguments.IsValid = true;
    
      }
    

    }

  3. AcademicYear 是一个弹出窗口,可在按钮点击时打开。现在,当我在文本框中输入name作为某个字符串时,它会打开弹出窗口(它不应该这样做)但我可以在弹出窗口中看到正则表达式验证器的错误消息。

    如何让两种条件都有效?

1 个答案:

答案 0 :(得分:0)

您是否致电 ValidationGroup =&#34; AcademicYear&#34;在你的按钮

将参数替换为args

if (yearEnd <= checkYearStart) {
      args.IsValid = false;

  }
  else {
      args.IsValid = true;

  }