javascript window.event即将出现?

时间:2010-10-25 15:13:50

标签: c# javascript asp.net regex validation

我在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 ......

1 个答案:

答案 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;