【问题标题】:defaultViewDate not working on Bootstrap datepickerdefaultViewDate 在 Bootstrap 日期选择器上不起作用
【发布时间】:2015-12-06 21:31:32
【问题描述】:

好的,我看到了Bootstrap Datepicker : Changing start date to tomorrow,我认为这会让我正确,但事实并非如此。

$("#datepickerStart, #datepickerEnd").datepicker({
  todayHighlight: true,
  endDate: '+367d'
})

var fullDate = new Date();
  console.log(fullDate);
var twoDigitMonth = fullDate.getMonth() + "";
if (twoDigitMonth.length == 1)
  twoDigitMonth = "0" + twoDigitMonth;
var twoDigitDate = fullDate.getDate() + "";
if (twoDigitDate.length == 1)
  twoDigitDate = "0" + twoDigitDate;
var $currentDate = twoDigitMonth + "/" + twoDigitDate + "/" + fullDate.getFullYear();
var $endYear = fullDate.getFullYear() + 1;
  console.log($currentDate);
  console.log($endYear);
var $endDate = twoDigitMonth + "/" + twoDigitDate + "/" + $endYear;
  console.log($currentDate);
  console.log($endDate);

$("#datepickerStart").find("input").attr("value", $currentDate);

$("#datepickerEnd").find("input").attr("value", $endDate);

$("#datepickerEnd").datepicker({
  defaultViewDate: {
    year: $endYear,
    month: twoDigitMonth,
    day: twoDigitDate
  },
  format: 'mm/dd/yyyy',
})
@import url('https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/css/bootstrap.css');
@import url('https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.5.0/css/bootstrap-datepicker3.css');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/js/bootstrap.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.5.0/js/bootstrap-datepicker.js"></script>
<div class="form-group col-sm-3 colFlushL hideme" id="endDateWrapper">
  <label class="control-label" for="datepickerEnd">End <small><span class="text-muted">(max 1 year)</span></small>
  </label>

  <div class="input-group date colFlush" data-provide="datepicker" id="datepickerEnd">
    <input type="text" class="form-control" name="datepickerEnd" value="">
    <span class="input-group-addon"><i
            class="glyphicon glyphicon-th"></i></span>
  </div>
</div>

不漂亮,但它可以工作 - 除了末端选择器的默认视图(该值工作正常)(即输入字段中的值正常并且 367 天限制工作。

我想知道是不是因为 id 和 data-provide 附加到 input-group 而不是 input 但你必须这样做才能使图标作为日期选择器的一部分而不是图标从用户体验的角度来看,这项工作很愚蠢。

有什么想法吗?

PS 我们说的是http://bootstrap-datepicker.readthedocs.org/en/latest/options.html#id3

【问题讨论】:

    标签: javascript jquery twitter-bootstrap datepicker


    【解决方案1】:

    似乎来自您对输入的破解是...

    这个作品and the icon too:

    $("#datepickerStart, #datepickerEnd").datepicker({
      todayHighlight: true,
      endDate: '+367d'
    })
    
    var fullDate = new Date();
      console.log(fullDate);
    var twoDigitMonth = fullDate.getMonth() + "";
    if (twoDigitMonth.length == 1)
      twoDigitMonth = "0" + twoDigitMonth;
    var twoDigitDate = fullDate.getDate() + "";
    if (twoDigitDate.length == 1)
      twoDigitDate = "0" + twoDigitDate;
    var currentDate = twoDigitMonth + "/" + twoDigitDate + "/" + fullDate.getFullYear();
    var endYear = fullDate.getFullYear() + 1;
      console.log(endYear+' '+twoDigitMonth+' '+twoDigitDate);
    var endDate = twoDigitMonth + "/" + twoDigitDate + "/" + endYear;
    
    $("#datepickerEnd").attr("value", endDate);
    
    $("#datepickerEnd").datepicker({
      defaultViewDate: {
        year: endYear,
        month: twoDigitMonth,
        day: twoDigitDate
      },
      format: 'mm/dd/yyyy',
    })
    @import url('https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/css/bootstrap.css');
    @import url('https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.5.0/css/bootstrap-datepicker3.css');
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/js/bootstrap.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.5.0/js/bootstrap-datepicker.js"></script>
    
    <div class="form-group col-xs-5 colFlushL hideme" id="endDateWrapper">
      <label class="control-label" for="datepickerEnd">End <small><span class="text-muted">(max 1 year)</span></small>
      </label>
    
      <div class="input-group date colFlush" data-provide="datepicker">
        <input  id="datepickerEnd" type="text" class="form-control" name="datepickerEnd" value="">
        <div class="input-group-addon"><span class="glyphicon glyphicon-th"></span></div>
      </div>
      
    </div>

    【讨论】:

    • 非常感谢。 hack 是我试图跟随 Bootstrap 3。BS 2 使用了&lt;i&gt; 标签,但 BS 3 希望我们使用 &lt;span&gt; 作为插件(请参阅getbootstrap.com/components/#input-groups-basic),这会导致很多问题。我现在将放弃文档,因为它不断出现,&lt;i&gt; 标签似乎工作得很好。谢谢
    • @OldMauiMan 编辑:看看,它也适用于span XD
    • 真的 - 我只是太累了,不在乎。我将通过我的代码整理日期选择器(我有 10 个窃听器)。再次感谢,但当我可以责怪 Bootstrap 时,我会更快乐 :-) 生活啊! (ps每次我一开始@Blag都会吃掉它 - 抱歉)
    • 遗憾的是我无法让这一切正常工作。我整理一件事,然后休息。在这个版本中,一年的限制不起作用,但今天的亮点是!!!! (编辑哎呀,它不是)所以我将删除默认日期,以便结束日期只显示今天,用户可以对其进行整理(只是试图帮助用户,但现在会让他们感到困惑)。除了将 id 从 div 移动到 input 之外,您是否更改了其他任何内容?我又花了大约半个小时在这上面,这根本不是一个优先事项,但它是如此令人沮丧。感谢您的努力
    • 我的错,你不能在同一个 DOM 上使用双重实例化 .datepicker({...}),所以是的,它不起作用!如果要更改某些设置,则必须在第一次实例化后使用setter method。我会编辑我的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2020-02-25
    • 2014-09-01
    • 2014-04-07
    • 1970-01-01
    相关资源
    最近更新 更多