【问题标题】:knockout custom binding with bootstrap datepicker showing wrong view带有引导日期选择器的淘汰自定义绑定显示错误视图
【发布时间】:2014-02-14 18:58:26
【问题描述】:

我想显示一个日期选择器以仅显示年份和月份,并将当前月份作为默认视图。问题是它仍然显示日视图,我看不出有什么问题,有什么建议吗?

ko.bindingHandlers.datePickerMonthYear =
    init: (element, valueAccessor, allBindingsAccessor, viewModel) ->
        value = valueAccessor()
        $('#dpMonths').data({date: value()});
        $('#dpMonths').datepicker('update');

        $(element).datepicker(
            viewMode: "years", 
            minViewMode: "months"
        ).on('changeDate', (ev) ->  
            $(this).datepicker('hide')
        ).on('click',  (ev) ->
            $(this).datepicker('show')
        )
        ko.bindingHandlers.validationCore.init(element, valueAccessor,allBindingsAccessor)
    ,
    update: (element, valueAccessor, allBindingsAccessor, viewModel) ->

HTML

<div id="dpMonths" class="input-append date" data-date-minviewmode="months" data-date-viewmode="years" data-date-format="mm/yyyy" data-bind="datePickerMonthYear: startDate">
    <input class="span2" type="text" readonly="" data-bind="value: startDate">
    <span class="add-on">
        <i class="icon-calendar"></i>
    </span>
</div>

【问题讨论】:

  • 您使用的是哪个插件?请发布一个 jsFiddle
  • 抱歉,我想知道为什么它不能与 Firefox 一起使用(单击 prev 或 next 时日历不会移动),但在 chrome 中可以。这不是相同的设置,但即使如此,也不对...jsfiddle.net/DcafD/25

标签: twitter-bootstrap knockout.js


【解决方案1】:

根据this,需要设置startView属性:

$(element).datepicker({
    startView: year
})

【讨论】:

    【解决方案2】:

    尝试在your fiddle 中使用dateFormat 而不是format,如下所示:

    $(document).ready(function() {
        $('#input_date').datepicker({
            dateFormat: 'mm/yy',
            viewMode: "months", 
            minViewMode: "years",
            startView: "month"
        });
    });
    

    在这里工作:http://jsfiddle.net/jham/ESX6Z/1/

    【讨论】:

      猜你喜欢
      • 2015-09-22
      • 1970-01-01
      • 2016-06-26
      • 1970-01-01
      • 2015-05-30
      • 2023-04-08
      • 2015-08-31
      • 2012-11-16
      • 2016-11-15
      相关资源
      最近更新 更多