我使用Java脚本具有自定义验证器的ASPNET应用程序。我必须比较文本框中的2个日期(txtbegindate,txtendDate)。我将我的java脚本写为
Java Script:
function DateCompareClient(oSrc, args)
{
var begindt = new Date(document.getElementById('txtBeginDate').value);
var endDt = new Date(document.getElementById('txtEndDate').value);
if (begindt < endDt) {
args.valid = true;
return;
}
args.valid = false;
return;
}
<asp:CustomValidator
ID="Customvalidator3" runat="server"
ControlToValidate="txtEndDate" ErrorMessage="End Date must be later than Begin Date"
EnableClientScript="true" ClientValidationFunction="DateCompareClient"
>*</asp:CustomValidator></td>
现在,脚本运行良好,但没有显示错误消息。如果条件是错误的,则应显示错误,这不会发生?
您可以在没有任何JavaScript的情况下完成您尝试做的事情,称为比较验证器
<asp:CompareValidator id="compareStartAndEndDates"
ControlToValidate="txtEndDate"
ControlToCompare="txtBeginDate"
Operator="LessThan"
Text="End Date must be after Begin Date"
Type="Date"
runat="server"/>
我怀疑您的验证者从未真正射击。将alert()
粘在您的JavaScript中进行测试。
在文本框上,您要确保将它们设置为AutoPostBack="true"
,以便用户远离该字段时,验证器启动。您可能还需要CausesValidation="true"