4

我正在尝试验证开始日期和结束日期,以便如果用户输入的结束日期早于开始日期,则会引发错误。我正在使用 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>

需要更多信息询问:)。

4

2 回答 2

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">

于 2012-10-15T13:06:08.047 回答
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
有效:否

于 2012-09-17T19:56:40.027 回答