0

我需要对同一个文本框使用 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;
    
      }
    

    }

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

如何让这两个条件都起作用?

4

1 回答 1

0

您是否在按钮中调用ValidationGroup="AcademicYear"

并将参数替换为 args

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

  }
  else {
      args.IsValid = true;

  }
于 2013-05-15T07:52:27.530 回答