使用javascript&自定义验证器,以检查开始日期和完成日期?

时间:2012-09-03 11:49:53

标签: javascript asp.net validation customvalidator

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

需要了解更多信息:)。

2 个答案:

答案 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
有效:否