【问题标题】:Bootstrap datetimepicker / date picker not displaying calendar. Cannot pick a date引导日期时间选择器/日期选择器不显示日历。无法选择日期
【发布时间】:2019-01-03 16:09:39
【问题描述】:

我正在尝试让引导程序 datetimepicker 与 Datatables 一起工作,以便在选择日期时过滤数据表。问题是,它只是在我的页面上显示为输入栏,没有日历或日历符号。这听起来像是一个 CDN/库参考问题,但我已经仔细检查过,似乎都加载了它们:

。 jQuery .时刻.js .引导程序 .引导-datetimepicker.min.js . bootstrap-datetimepicker.min.css

我已确保在引导和 jquery 之前加载 Moment。我相信这就是我需要的所有参考资料?任何帮助将不胜感激。谢谢

<div class="container">
    <div class='col-md-4'>
        <div class="form-group">
            <div class='input-group date' id='from'>
                <input type='text' class="form-control" />
                <span class="input-group-addon">
                    <span class="glyphicon glyphicon-calendar"></span>
                </span>
            </div>
        </div>
    </div>
    <div class='col-md-4'>
        <div class="form-group">
            <div class='input-group date' id='to'>
                <input type='text' class="form-control" />
                <span class="input-group-addon">
                    <span class="glyphicon glyphicon-calendar"></span>
                </span>
            </div>
        </div>
    </div>
</div>
<script>
$(function () {
                $('#from').datetimepicker({
                    format: 'DD MMMM YYYY',
                    extraFormats: ['DD MM YYYY', 'DD.MM.YYYY', 
'DD/MM/YYYY', 'DD MMM YYYY', 'DD.MMM.YYYY', 'DD/MMM/YYYY', 'DD MMMM YYYY', 
'DD.MMMM.YYYY', 'DD/MMMM/YYYY']
                }).on('dp.change', function (e) {
                    UpdateDataCount();
                });

                $('#to').datetimepicker({
                    format: 'DD MMMM YYYY',
                    extraFormats: ['DD MM YYYY', 'DD.MM.YYYY', 
'DD/MM/YYYY', 'DD MMM YYYY', 'DD.MMM.YYYY', 'DD/MMM/YYYY', 'DD MMMM YYYY', 
'DD.MMMM.YYYY', 'DD/MMMM/YYYY']
                }).on('dp.change', function (e) {
                    UpdateDataCount();
                });
            });

UpdateDataCount: function () {
        $.fn.dataTable.ext.search.push(
            function (settings, data, dataIndex) {
                var from = $('#from').datetimepicker("getDate");
                var to = $('#to').datetimepicker("getDate");

                //data being searched
                var startDate = new Date(data[2]);

                //if true show row/ if not, don't
                if (from == null && to == null) { return true; }
                if (from == null && startDate <= to) { return true; }
                if (to == null && startDate >= from) { return true; }
                if (startDate <= to && startDate >= from) { return true; }
                return false;
            }
        );
    }
</script>

【问题讨论】:

    标签: javascript html datatables bootstrap-datetimepicker


    【解决方案1】:

    回答我自己的问题,datetimepicker 与 bootstrap 4 不兼容

    【讨论】:

      【解决方案2】:

      我很想看看你的控制台在做什么,但我认为你不想重复推送一个函数,而是在更改时调用它......

      我让它工作了,将时刻日期与普通日期进行比较时存在问题:

      var table = $('#example').DataTable();
      var from = null;
      var to = null;
      
      $('#from').datetimepicker({
          format: 'DD MMMM YYYY',
          extraFormats: ['DD MM YYYY', 'DD.MM.YYYY',
              'DD/MM/YYYY', 'DD MMM YYYY', 'DD.MMM.YYYY', 'DD/MMM/YYYY', 'DD MMMM YYYY',
              'DD.MMMM.YYYY', 'DD/MMMM/YYYY'
          ]
      }).on('dp.change', function(e) {
          from = e.date;
          table.draw();
      });
      
      $('#to').datetimepicker({
          format: 'DD MMMM YYYY',
          extraFormats: ['DD MM YYYY', 'DD.MM.YYYY',
              'DD/MM/YYYY', 'DD MMM YYYY', 'DD.MMM.YYYY', 'DD/MMM/YYYY', 'DD MMMM YYYY',
              'DD.MMMM.YYYY', 'DD/MMMM/YYYY'
          ]
      }).on('dp.change', function(e) {
          to = e.date;
          table.draw();
      });
      
      $.fn.dataTable.ext.search.push(
          function(settings, data, dataIndex) {
              //data being searched
              var startDate = moment(data[2], "DD/MM/YYYY");
              if (!from && !to) {
                  return true;
              }
              if (!from && startDate.isSameOrBefore(to, "day")) {
                  return true;
              }
              if (!to && startDate.isSameOrAfter(from, "day")) {
                  return true;
              }
              if (startDate.isSameOrBefore(to, "day") && startDate.isSameOrAfter(from, "day")) {
                  return true;
              }
              return false;
          }
      );
      

      工作 JSFiddle here.

      希望对您有所帮助。

      【讨论】:

      • 非常感谢。我仍然有同样的问题,但你解决了我无论如何都会遇到的问题。小日历图标没有显示,所以我无法选择日期。它只是一个空白框。
      • 弄清楚我的问题是什么。我使用的是 bootstrap 4,而 datetimepicker 使用的是 bootstrap 3。新手的错误,但你生活和学习!
      猜你喜欢
      • 1970-01-01
      • 2013-12-01
      • 2023-03-03
      • 1970-01-01
      • 2021-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多