【问题标题】:Jquery Date picker Dynamic minDate -issueJquery 日期选择器动态 minDate -issue
【发布时间】:2019-04-15 00:10:42
【问题描述】:

我有一个日期选择器 jquery 函数

$("#txtFrom").datepicker({
  beforeShowDay: $.datepicker.noWeekends,
  numberOfMonths: 1,
  minDate: sprint_select(),
  maxDate: $( '#d_id' ).val(),
  onSelect: function (selected) {
    var dt = new Date(selected);
    $("#txtTo").datepicker("option", "minDate", dt);
  }
});

这里我设置minDate: sprint_select(),调用函数sprint_select.So

function sprint_select(){
  var r_id=$('#r_id').val();
  var dataString = { r_id: r_id}

  $.ajax({
    url: "/manage/scrum/getsprintprd",
    method: "POST",
    data: dataString,
    //                   dataType: "json",
    //cache: false,
    success: function (data)
    {
      //var values= $.trim(data).split("-");
      var values1 = '2018-11-09'.split("-"); 
      var parsed_date = new Date(values[0], values[1]-1, values[2]);
      return parsed_date;
    }
  });
}

在这里我成功返回 parsed_date。但日历最小日期没有变化。任何帮助将不胜感激。

【问题讨论】:

  • 你这里有不同的地方出错,我建议你看看this topic about how to return value from async function(ajax 调用是异步的)。因此,简单来说,您的 sprint_select() 在创建 datepicker 时还没有回答,实际上它没有回答,因为 succes 函数中的 return 返回 success 而不是 sprint_select
  • 在 ajax 中添加您的 datepicker 创建 success handler
  • 您可以在AJAX请求的success回调中设置minDate的值。
  • @Alexander 谢谢我明白了

标签: javascript php jquery datepicker


【解决方案1】:

尝试在 sprint_select() 成功时调用您的 datepicker 函数: (因为从 api 获取日期可能需要一些时间。在此之前,您的 datepicker 函数已完成。)

    function sprint_select(){
      var r_id=$('#r_id').val();
      var dataString = { r_id: r_id}

      $.ajax({
        url: "/manage/scrum/getsprintprd",
        method: "POST",
        data: dataString,
        //                   dataType: "json",
        //cache: false,
        success: function (data) {
          //var values= $.trim(data).split("-");
          var values1 = '2018-11-09'.split("-"); 
          var parsed_date = new Date(values[0], values[1]-1, values[2]);

           $("#txtFrom").datepicker({
           beforeShowDay: $.datepicker.noWeekends,
           numberOfMonths: 1,
           minDate: parsed_date ,
           maxDate: $( '#d_id' ).val(),
           onSelect: function (selected) {
           var dt = new Date(selected);
           $("#txtTo").datepicker("option", "minDate", dt);
         }
       });

    }
 });
}

【讨论】:

    【解决方案2】:

    试试这个,
    maxDate 喜欢:

    <input type="hidden" id="d_id" name="d_id" value="01-28-2019">
    

    脚本

    var max = new Date($( '#d_id' ).val());
    $("#txtFrom").datepicker({
        beforeShowDay: $.datepicker.noWeekends,
        numberOfMonths: 1,
        minDate: sprint_select(),
        maxDate: max,
        onSelect: function (selected) {
           var dt = new Date(selected);
           $("#to_date").datepicker({
              minDate: dt,
           });
        }
    });
    

    检查 Ajax 返回值是否为 mm/dd/yyyy 格式

    function sprint_select(){
        var parsed_date = new Date('01-02-2019');
        return parsed_date; 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-19
      • 1970-01-01
      相关资源
      最近更新 更多