我的WebForms 4.51应用程序中有以下验证器:
<asp:CustomValidator ID="cfvClockedOut" runat="server" Display="Static" ControlToValidate="dtpClockedOutAt" CssClass="error" ErrorMessage="" ValidationGroup="Default" ClientValidationFunction="CheckClockOutDate" ValidateEmptyText="True"></asp:CustomValidator>
和相关的JS是:
function CheckClockOutDate(aSender, aArgs) {
var ctlClockedOut = $find("<%=dtpClockedOutAt.ClientID %>");
var ctrlClockedIn = $find("<%=dtpClockedInAt.ClientID %>");
console.log('Start ' + ctrlClockedIn.get_dateInput().get_selectedDate());
console.log('End ' + ctlClockedOut.get_dateInput().get_selectedDate());
//Ensure clocked in is set should clocked out be set
if (ctrlClockedIn.get_dateInput().get_selectedDate() === null && ctlClockedOut.get_dateInput().get_selectedDate() !== null) {
console.log('Check');
aArgs.IsValid = false;
console.log(aSender.errormessage);
aSender.errormessage = "Please specify a clock in time.";
console.log(aSender.errormessage);
console.log('/Check');
return;
}
console.log('BAIL');
aArgs.IsValid = true;
}
如果我查看Firebug中显示的内容,我会看到:
Start null
End Wed May 06 2015 00:00:00 GMT+1000 (AUS Eastern Standard Time)
Check
undefined
Please specify a clock in time.
/Check
所以根据上面的说法我设置了自定义验证器显示的错误信息。但是,当我查看错误文本的相应HTML时,我看到:
<span id="ContentPlaceHolder1_cfvClockedOut" class="error" style="visibility:hidden;">
很明显我的文字没有更新,因此没有显示。我在这里错过了什么?为什么我的错误文字没有显示?