【问题标题】:Jquery: DatePicker: start/end dateJquery:DatePicker:开始/结束日期
【发布时间】:2010-04-22 20:12:29
【问题描述】:

在发布我的问题之前我已经环顾四周

按照我在日期选择器中查看的内容(开始日期和结束日期):

1) 开始日期:可以是任何日期,(用户可以选择开始日期当前(现在)到任何未来日期。

2) 开始日期:用户可以选择开始日期回溯到 6 个月。 例如:如果今天是 2010 年 4 月 22 日,那么我可以回到 2009 年 11 月 22 日,但不超过 6 个月。

3) 开始日期如果用户选择的开始日期(未来的现在,而不是过去)少于 10 天,那么我想提醒消息说“需要至少 10 天”

4) 结束日期:应该是当前日期到将来的日期,所有以前的日期都被禁用。

5) **开始日期/结束日期:** 不得超过一年。

非常感谢。

PS:不确定我是否在这里要求太多:)

【问题讨论】:

  • 您是否要修改您现有的 datePicker?或找一个替代品?开始和结束日期是一个日期选择器还是两个?
  • 我正在使用第三方控件,我正在考虑实现 jquery datepicker。

标签: jquery datepicker


【解决方案1】:

我为朋友回答了类似的问题。他需要一个类似的级联日期,但我认为如果您查看我的标记,您可以了解如何解决该问题。

HTML

  <form target="_self" action="ClearForm.aspx">

清除表格

  • 开始日期:
  • 结束日期:
  • 清除

JS

<script type="text/javascript">
$(document).ready(function () {

  $('#endDate').datepicker({ showOn: 'button',
      buttonImage: '../images/Calendar.png',
      buttonImageOnly: true, onSelect: function () { },
      onClose: function () { $(this).focus(); }
    });


  $('#startDate').datepicker({ showOn: 'button',
      buttonImage: '../images/Calendar.png',
      buttonImageOnly: true, onSelect:
        function (dateText, inst) {
          $('#endDate').datepicker("option", 'minDate', new Date(dateText));
        }
      ,
      onClose: function () { $(this).focus(); }
    });


});             

【讨论】:

  • @Chris,我删除了 dateText,它可以按我的意愿工作,这意味着我已经完成了 #4
【解决方案2】:
<input type="text" id="tbStartDate" value="" disabled="disabled" />
<input type="text" id="tbEndDate" value="" disabled="disabled" />
<script type="text/javascript">
    $(document).ready(function () {
        $("#tbStartDate").datepicker({        
            showOn: 'button',
            buttonImageOnly: true,
            buttonImage: '/Content/Calendar.png',
            buttonText: 'Click here (date)',
            onSelect: function (dateText, inst) {
                 var $endDate = $('#tbStartDate').datepicker('getDate');
                 $endDate.setDate($endDate.getDate() + 1);
                 $('#tbEndDate').datepicker('setDate', $endDate).datepicker("option", 'minDate', $endDate);
            },
            onClose: function (dateText, inst) {
                //$("#StartDate").val($("#tbStartDate").val());
            }
        });

        $("#tbEndDate").datepicker({
            dateFormat: 'dd-mm-yy',
            showOn: 'button',
            buttonImageOnly: true,
            buttonImage: '/Content/Calendar.png',
            buttonText: 'Click here (date)',
            onClose: function (dateText, inst) {
                //$("#EndDate").val($("#tbEndDate").val());
            }
        });

            var $endDate = $('#tbStartDate').datepicker('getDate');
            $endDate.setDate($endDate.getDate() + 1);
            $('#tbEndDate').datepicker('setDate', $endDate).datepicker("option", 'minDate', $endDate);
    });
</script>

【讨论】:

    【解决方案3】:

    我更喜欢使用一个类为日期选择器编写一个默认配置,以便它可以与多个重复项一起使用。

    onSelect: function(dateText, inst){
        // Check if _until exists and auto set mindate
        if(inst.id.contains("_from")){
            $("#"+inst.id.replace("_from", "_until")).datepicker("option", "minDate", dateText);
        }
    }
    

    假设您的表单 ID 一致,则此方法有效。例如,我使用 date_until 和 date_from

    【讨论】:

      猜你喜欢
      • 2012-08-19
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 2021-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多