Я использую CustomValidator в ASP.NET следующим образом:
<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? Я мог поклясться, что это работало раньше.
EDIT:
Я изменил функцию следующим образом:
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 ...