我在ASP.NET中使用CustomValidator如下:
<asp:CustomValidator ID="cvComment" ControlToValidate="txtComment" Display="None"
EnableClientScript="true" ClientValidationFunction="validateComment"
runat="server" ></asp:CustomValidator>
这是被调用的函数:
function validateComment(source, args) {
var reComment = new RegExp("^[a-zA-Z0-9',!;?@#%*.\s]{1,1000}$");
var validComment = reComment.test(window.event.srcElement.value);
if (!validComment)
alert("The comment has illegal characters");
args.IsValid = validComment;
}
单击触发验证器的按钮后,应用程序中断,我可以看到window.event
属性为null,因此显然有一个空引用尝试匹配regEx。我的问题是为什么window.event可以显示为null?我可以发誓这是以前的工作。
编辑:
我已经修改了这个功能:
var check = document.getElementById(source.id);
var checky = check.attributes["controltovalidate"].value;
var checkyo = document.getElementById(checky);
var validHour = reOutHour.test(checkyo.value);
if (!validHour)
alert("The time is incorrectly formatted");
args.IsValid = validHour;
现在这适用于Internet Explorer,但不适用于Firefox ......
答案 0 :(得分:2)
这就是我设法解决问题的方法:
var check = document.getElementById(source.id);
var checky = check.controltovalidate;
var checkyo = document.getElementById(checky);
var validHour = reOutHour.test(checkyo.value);
if (!validHour)
alert("The time is incorrectly formatted");
args.IsValid = validHour;