我需要对同一个文本框使用2个验证(它接受输入的学年名称):
正则表达式验证程序,仅允许以 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>
当用户输入年份名称时,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 是一个弹出窗口,可在按钮点击时打开。现在,当我在文本框中输入name作为某个字符串时,它会打开弹出窗口(它不应该这样做)但我可以在弹出窗口中看到正则表达式验证器的错误消息。
如何让两种条件都有效?
答案 0 :(得分:0)
您是否致电 ValidationGroup =&#34; AcademicYear&#34;在你的按钮?
将参数替换为args
if (yearEnd <= checkYearStart) {
args.IsValid = false;
}
else {
args.IsValid = true;
}