【问题标题】:Ajax calendar extender not to select previous dateAjax 日历扩展器不选择上一个日期
【发布时间】:2012-07-23 16:52:00
【问题描述】:

我正在使用 ajax calendarextender 和 javascript 来限制用户不会选择过去的日期,但这里我遇到了一个问题:

  • 如果用户选择过去的日期,那么它工作正常
  • 如果用户选择未来日期,那么它也可以正常工作

但是如果用户选择当前日期,那么他也会收到不需要的警报。

我的要求是用户可以选择当前日期和未来日期,但限制输入任何以前的日期。请帮我解决这个问题,您可以在下面找到代码:-

<div id="formload" >
    <!-- ============================== Fieldset 1 ============================== -->
    <fieldset>
        <legend>Enter Date</legend>
        <table>
        <tr>
        <td><label for="input-one" class="float"><strong>Date</strong></label>
        </td><br />
        <td><asp:TextBox ID="txtDate" runat="server" CssClass="inp-text" Width="300px"></asp:TextBox> </td>
        <td><asp:Image runat="server" ID="btnDate2" AlternateText="cal2" ImageUrl="~/App_Themes/Images/icon_calendar.jpg" />
            <ajaxtoolkit:calendarextender runat="server" ID="calExtender2" Format="dddd, MMMM dd, yyyy" PopupButtonID="btnDate2" TargetControlID="txtDate"  OnClientDateSelectionChanged="CheckDateEalier" /> </td>
        </tr></table>

    </fieldset>
    <!-- ============================== Fieldset 1 end ============================== -->

Javascript

    <script type="text/javascript">
        function CheckDateEalier(sender, args)
            {
                if (sender._selectedDate < new Date())
                 {
                    alert("Day earlier than today cannot be selected.");
                    sender._selectedDate = new Date();
                    sender._textbox.set_Value(sender._selectedDate.format(sender._format))
                }
            }

</script>

【问题讨论】:

  • function CheckDateEalier(sender, args) { var toDate = new Date(); toDate.setMinutes(0); toDate.setSeconds(0); toDate.setHours(0); toDate.setMilliseconds(0); if (sender._selectedDate

标签: javascript asp.net ajax


【解决方案1】:

这是因为日期相同但时间不同将小时分钟秒和毫秒设置为 0 然后它会起作用。

<script type="text/javascript">
            function CheckDateEalier(sender, args) {
                var toDate = new Date();


           var selectedDate = sender._selectedDate;

            toDate.setMinutes(0);
            toDate.setSeconds(0);
            toDate.setHours(0);
            toDate.setMilliseconds(0);

            selectedDate.setMinutes(0);
            selectedDate.setSeconds(0);
            selectedDate.setHours(0);
            selectedDate.setMilliseconds(0);

            //alert(sender._selectedDate < toDate);
            //var difference = sender._selectedDate - toDate;

            if (selectedDate > toDate) {

                    alert("Ticket issue date must be greater than current date.");
                    sender._selectedDate = toDate; //set the date back to the current date
                    sender._textbox.set_Value(sender._selectedDate.format(sender._format));

            }             
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多