我正在尝试验证开始日期和完成日期,以便如果用户输入的完成日期早于开始日期,则会引发错误。我正在使用JavaScript和自定义验证器执行此操作但收到运行时错误,指出'CheckDate未定义'。
我认为这应该不难解决,因为代码看起来很好,我认为我只是错过了一些东西。
任何帮助都会很棒。
这是我的JavaScript,它在脚本标签中只是没有复制它们
function CheckDate(sender, args) {
if (new date (document.getElementById("txtstartdate").value)
> new (document.getElementById("TxtFinish").value)) {
args.IsValid = false;
return;
}
args.IsValid = true;
}
这是我的FinishDate控件的验证
<asp:CustomValidator ID="CustomValidator29" runat="server"
ErrorMessage="Finish Date should be greater than the Start Date" ClientValidationFunction="CheckDate"></asp:CustomValidator>
需要了解更多信息:)。
答案 0 :(得分:5)
您只需使用CompareValidator!
<asp:CompareValidator ID="CompareValidator1" runat="server"
ControlToCompare="txtStartDate" ControlToValidate="txtEndDate"
Display="Static" ErrorMessage="'End Date' must not be earlier than 'From Date'" Text="*"
Operator="GreaterThanEqual" SetFocusOnError="True" Type="Date"
ValidationGroup="SearchGroup">
答案 1 :(得分:1)
这就是我所做的,它完美地验证了。由于我不确定你使用的是什么样的控件,我只使用了一个基本的文本框。我会输入“1983年7月21日01:15:00”等值。
JavaScript的:
<script type="text/javascript" >
function CheckDate(sender, args) {
var startDate = new Date(document.getElementById("txtStartDate").value);
var finishDate = new Date(document.getElementById("txtFinishDate").value);
if (startDate > finishDate) {
args.IsValid = false;
}
else {
args.IsValid = true;
}
}
</script>
HTML:
<asp:CustomValidator ID="CustomValidator29" runat="server"
ErrorMessage="Finish Date should be greater than the Start Date"
ClientValidationFunction="CheckDate" ControlToValidate="txtStartDate">
</asp:CustomValidator>
<asp:TextBox id="txtStartDate" runat="server" />
<asp:TextBox id="txtFinishDate" runat="server" />
这是一个值和结果表:
txtStartDate:1983年7月21日01:15:00
txtEndDate:1983年7月25日01:15:00
有效:是
txtStartDate:1983年7月25日01:15:00
txtEndDate:1983年7月21日01:15:00
有效:否
txtStartDate:1983年7月21日01:15:00
txtEndDate:1983年7月21日06:15:00
有效:是
txtStartDate:1983年7月21日06:15:00
txtEndDate:1983年7月21日01:15:00
有效:否