手动编辑日期或清除日期时,bootstrap datepicker更改日期事件不会启动

Mar*_*jus 24 javascript jquery datepicker twitter-bootstrap bootstrap-datepicker

<script type="text/javascript">
    // When the document is ready
    $(document).ready(function () {
        $('.datepicker').datepicker({
            format: "yyyy-mm-dd",
        }).on('changeDate', function(ev){
            // do what you want here
            $(this).datepicker('hide');
        }).on('changeDate', function(ev){
            if ($('#startdate').val() != '' && $('#enddate').val() != ''){
                $('#period').text(diffInDays() + ' d.'); 
            } else {
                $('#period').text("-");
            }
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

所以这就是我的日期选择器的样子.所以基本上当我通过点击鼠标更改日期时它工作正常,但是当我用键盘手动更改日期或手动清除日期更改日期时,事件不会被调用.这是一个错误还是我在这里做错了什么?

Bra*_*ger 44

change如果要响应手动输入,则必须在输入本身上使用该事件,因为该changeDate事件仅适用于使用datepicker更改日期的情况.

尝试这样的事情:

$(document).ready(function() {
    $('.datepicker').datepicker({
        format: "yyyy-mm-dd",
    })
    //Listen for the change even on the input
    .change(dateChanged)
    .on('changeDate', dateChanged);
});

function dateChanged(ev) {
    $(this).datepicker('hide');
    if ($('#startdate').val() != '' && $('#enddate').val() != '') {
        $('#period').text(diffInDays() + ' d.');
    } else {
        $('#period').text("-");
    }
}
Run Code Online (Sandbox Code Playgroud)

  • `.change(...).on('changeDate')`导致双击. (4认同)
  • 而不是'changeDate'尝试'dp.change'对我有用 (2认同)

dnx*_*xit 8

在2.1.5版中

changeDate已重命名为change.dp,因此changeate对我不起作用

$("#datetimepicker").datetimepicker().on('change.dp', function (e) {
            FillDate(new Date());
    });
Run Code Online (Sandbox Code Playgroud)

还需要将css类从datepicker更改为datepicker-input

<div id='datetimepicker' class='datepicker-input input-group controls'>
   <input id='txtStartDate' class='form-control' placeholder='Select datepicker' data-rule-required='true' data-format='MM-DD-YYYY' type='text' />
   <span class='input-group-addon'>
       <span class='icon-calendar' data-time-icon='icon-time' data-date-icon='icon-calendar'></span>
   </span>
</div>
Run Code Online (Sandbox Code Playgroud)

日期格式化也适用于大写字母,如数据格式='MM-DD-YYYY'

它可能对它给我真正困难的人有帮助:)

  • 从版本4.7.14开始,正确的事件引用是"dp.change" (8认同)

Rav*_*ngh 5

新版本已更改..对于最新版本,请使用以下代码:

$('#UpToDate').datetimepicker({
        format:'MMMM DD, YYYY',
        maxDate:moment(),
        defaultDate:moment()            
    }).on('dp.change',function(e){
        console.log(e);
    });
Run Code Online (Sandbox Code Playgroud)