【问题标题】:When the start date is changed the end date should reset to be 60 days from the start date更改开始日期后,结束日期应重置为从开始日期起 60 天
【发布时间】:2016-12-09 06:30:50
【问题描述】:

您好,我目前是新手,正在练习 jquery 和 javascript,结束日期有问题,我正在使用 datepicker。

这里是源代码

http://jsfiddle.net/zz9u4/704/

这是 Jquery 代码

$(function(){
    $("#txtFromDate").datepicker({
        minDate:0,
        maxDate: "+60D",
        numberOfMonths: 2,
    });
    $("#txtToDate").datepicker({ 
        minDate:0,
        maxDate:"+60D",
        numberOfMonths: 2,
    }); 
    var default_date = new Date();
    default_date.setDate(default_date.getDate()+60);
    $('#txtFromDate').datepicker('setDate', new Date());
    $('#txtToDate').datepicker('setDate', default_date);
});
$("#txtFromDate").datepicker({
    onSelect: function(dateText) {
        $("#txtToDate").datepicker("option", "minDate", $('#txtFromDate').datepicker("getDate") );
        var date2 = $("#txtFromDate").datepicker("getDate");
        date2.setDate(date2.getDate()+60);

【问题讨论】:

    标签: jquery datepicker jquerydatetimepicker


    【解决方案1】:

    请替换 txtToDate

    的波纹管代码
    $("#txtToDate").datepicker({ 
        minDate:0,
        numberOfMonths: 2,
        maxDate: "+60D",
        onClose: function() {
            $("#aDateFrom").datepicker(
                    "change",
                    { minDate: new Date($('#txtFromDate').val()) }
            );
        }
    }); 
    

    【讨论】:

      【解决方案2】:

      尝试测试这段代码:

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <title>Test</title>
      <style>
      body
      {
          font-size:8pt;
          font-family:Verdana;
          padding: 5px;
      }
      
      .ui-datepicker-calendar a {
        color: white !important;
        background-color: black !important;
        border-color: black;
      }
      </style>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
      <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
      </head>
      <body>
      
      <br/>
      From: <input type="text" id="txtFromDate" />
      To: <input type="text" id="txtToDate" />
      <p id="dataDate"></p>
      <script type="text/javascript">
      $(function(){
          $("#txtFromDate").datepicker({
              minDate:0,
              //maxDate: "+60D",
              numberOfMonths: 2,
          });
          $("#txtToDate").datepicker({ 
              minDate:0,
              //maxDate: "+60D",
              numberOfMonths: 2,
          }); 
          var default_date = new Date();
          default_date.setDate(default_date.getDate()+60);
          $('#txtFromDate').datepicker('setDate', new Date());
          $('#txtToDate').datepicker('setDate', default_date);
      });
      $("#txtFromDate").datepicker({
          onSelect: function(dateText) {
              $("#txtToDate").datepicker("option", "minDate", $('#txtFromDate').datepicker("getDate") );
              var date2 = $("#txtFromDate").datepicker("getDate");
              var d = date2.getFullYear()+'/'+date2.getMonth()+'/'+date2.getDate()+60;
              $('#txtToDate').datepicker("setDate", date2.getDate()+60);
            $('#dataDate').text(new Date(date2.getFullYear(),date2.getMonth(),date2.getDate()+60)+ '00000'+date2+'ppp'+date2.getDate());
              //$("#txtToDate").datepicker("option", "maxDate", date2);
          }
      });
      </script>
      
      </body>
      </html>
      

      我的提琴手是: https://jsfiddle.net/8o3LmLxt/

      您似乎做错了这一行:

      var date2 = $("#txtFromDate").datepicker("getDate");
             date2.setDate(date2.getDate()+60);
      

      您正在使用 fromdate 作为今天。 设置日期:

      $('#txtToDate').datepicker("setDate", date2.getDate()+60);
      

      期待对你有帮助

      (我从代码中的 datepicker 中删除了限制 +60D)

      【讨论】:

      • 当我尝试单击更多日期时,例如,我想选择 From 06/01/2017 并且应该将结束日期添加到 60 天,但是当我选择 From 06/01/ 2017 年 To 的输出是 06/01/2017 ,为什么是一样的?
      • 我已经在小提琴中测试了你的测试用例并给我 To '02/13/2017' when from 是 '01/06/2017' @Teapetetose
      • 否,您可以再试一次吗?选择从 2017 年 6 月 29 日开始,到 2017 年 6 月 29 日。为什么是一样的?有什么办法当开始日期更改时,结束日期应该重置为从开始日期起 60 天?
      • @Teapetetose 你用过那个提琴手吗? jsfiddle.net/8o3LmLxt。你从你的 datepicker 定义中删除了 60D 的限制?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-19
      • 2015-02-27
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 2013-03-13
      相关资源
      最近更新 更多