基于Irvin Dominin示例,我创建了2个支持Paste的示例,然后按Enter。
在Chrome中有效:http :
//jsfiddle.net/lhernand/0a8woLev/
$(document).ready(function() {
$('#date-daily').datepicker({
format: 'dd/mm/yyyy',
assumeNearbyYear: true,
autoclose: true,
orientation: 'bottom right',
todayHighlight: true,
keyboardNavigation: false
})
.on('paste', function(e) {
$(this).blur();
$('#date-daily').datepicker('hide');
})
.on('keydown', function(e) {
if (e.which === 13) {
console.log('enter');
$(this).blur();
}
})
.change(function(e) {
console.log('change');
$('#stdout').append($('#date-daily').val() + ' change\n');
});
});
但不是在IE中,因此我为IE11创建了另一个示例:https ://jsbin.com/timarum/14/edit ? html,js,console,output
$(document).ready(function() {
$('#date-daily').datepicker({
format: 'dd/mm/yyyy',
assumeNearbyYear: true,
autoclose: true,
orientation: 'bottom right',
todayHighlight: true,
keyboardNavigation: false
})
.on('keydown', function(e) {
if (e.which === 13){
$(this).blur();
}
})
.on('keyup', function(e) {
if (e.which === 86){
$(this).blur();
$(this).datepicker('hide');
}
})
.change(function(e) {
$('#stdout').append($('#date-daily').val() + ' change\n');
});
});
如果最后一个示例在IE11中仍然不起作用,则可以尝试拆分设置:
$('.datepicker').datepicker({
format: 'dd/mm/yyyy',
assumeNearbyYear: true,
autoclose: true,
orientation: 'bottom rigth',
todayHighlight: true,
keyboardNavigation: false
});
和事件处理程序:(请注意,我没有使用$('.datepicker').datepicker({
)
$('#inputStoppedDate')
.on('keydown', function (e) {
if (e.which === 13){
$(this).blur();
}
})
.on('keyup', function (e) {
if (e.which === 86){
$(this).blur();
$(this).datepicker('hide');
}
})
.change(function (e) {
});
clearDate
如果您的日期可以为空,那么您还应该听一个事件。但是,通过上下文菜单(在Chrome中)清除时,似乎不会触发此事件。