将 autoUpdateInput 设置为 false 后日期时间选择器不工作
Date time picker not working after setting autoUpdateInput to false
我有一个要求,当用户有一个日期时间存在于数据库中时,它只显示日期。但是如果数据库没有日期时间那么在文本框中它必须是空白的。
但是当页面加载时,datetimepicker 会在其中设置默认值。
因此,为此我将 autoUpdateInput
设置为 false,它正在工作,它将文本框设置为空白。但在那之后,日期时间选择器没有在文本框中设置值。
$('.datetimepicker').daterangepicker({
autoUpdateInput: false,
singleDatePicker: true,
showDropdowns: true,
timePicker: true,
locale: {
format: 'DD-MM-YYYY hh:mm:ss'
},
});
Js Fiddle Link: https://jsfiddle.net/Ly0jh5pz/2/
注意:我必须使用 daterangepicker,所以 bootstrap datetimepicker 不是一个选项。
试试这个:
$("#reportdatetime").daterangepicker({
autoUpdateInput: false,
timePicker: true,
timePicker24Hour: true,
timePickerIncrement: 30,
locale: {
format: 'MM/DD/YYYY H:mm'
}
});
$('#reportdatetime').on('apply.daterangepicker', function(ev, picker) {
$(this).val(picker.startDate.format('MM/DD/YYYY H:mm') + ' - ' + picker.endDate.format('MM/DD/YYYY H:mm'));
});
$('#reportdatetime').on('cancel.daterangepicker', function(ev, picker) {
$(this).val('');
});
如果您想获得具有单一格式时间范围的日期时间选择器,您也可以尝试这种格式。
到期时间下方是您的 HTML 输入标签的 ID。
$("#duetime").daterangepicker({
autoUpdateInput: false,
startDate: false,
minYear: 1901,
showDropdowns: true,
singleDatePicker: true,
timePicker: true,
timePicker24Hour: false,
timePickerIncrement: 05,
drops:"up",
locale: {
// format: 'MM/DD/YYYY hh:mm A'
format: 'DD/MM/YYYY hh:mm A'
},
});
$("#duetime").on('apply.daterangepicker', function(ev, picker) {
$(this).val(picker.startDate.format('DD/MM/YYYY hh:mm A'));
});
$("#duetime").on('cancel.daterangepicker', function(ev, picker) {
$(this).val('');
});
您应该触发 change()
以确保它在所有情况下都能完美运行;有时你有一些事件监听器,需要触发日期范围选择器的变化。
$('#date-picker-input').daterangepicker({
autoUpdateInput: false,
singleDatePicker: true,
showDropdowns: true,
timePicker: true,
locale: {
format: 'DD-MM-YYYY hh:mm:ss'
},
});
$("#date-picker-input").on('apply.daterangepicker', function(ev, picker) {
$(this).val(picker.startDate.format('DD/MM/YYYY hh:mm A')).change();
});
$("#date-picker-input").on('cancel.daterangepicker', function(ev, picker) {
$(this).val('').change();
});
我有一个要求,当用户有一个日期时间存在于数据库中时,它只显示日期。但是如果数据库没有日期时间那么在文本框中它必须是空白的。
但是当页面加载时,datetimepicker 会在其中设置默认值。
因此,为此我将 autoUpdateInput
设置为 false,它正在工作,它将文本框设置为空白。但在那之后,日期时间选择器没有在文本框中设置值。
$('.datetimepicker').daterangepicker({
autoUpdateInput: false,
singleDatePicker: true,
showDropdowns: true,
timePicker: true,
locale: {
format: 'DD-MM-YYYY hh:mm:ss'
},
});
Js Fiddle Link: https://jsfiddle.net/Ly0jh5pz/2/
注意:我必须使用 daterangepicker,所以 bootstrap datetimepicker 不是一个选项。
试试这个:
$("#reportdatetime").daterangepicker({
autoUpdateInput: false,
timePicker: true,
timePicker24Hour: true,
timePickerIncrement: 30,
locale: {
format: 'MM/DD/YYYY H:mm'
}
});
$('#reportdatetime').on('apply.daterangepicker', function(ev, picker) {
$(this).val(picker.startDate.format('MM/DD/YYYY H:mm') + ' - ' + picker.endDate.format('MM/DD/YYYY H:mm'));
});
$('#reportdatetime').on('cancel.daterangepicker', function(ev, picker) {
$(this).val('');
});
如果您想获得具有单一格式时间范围的日期时间选择器,您也可以尝试这种格式。 到期时间下方是您的 HTML 输入标签的 ID。
$("#duetime").daterangepicker({
autoUpdateInput: false,
startDate: false,
minYear: 1901,
showDropdowns: true,
singleDatePicker: true,
timePicker: true,
timePicker24Hour: false,
timePickerIncrement: 05,
drops:"up",
locale: {
// format: 'MM/DD/YYYY hh:mm A'
format: 'DD/MM/YYYY hh:mm A'
},
});
$("#duetime").on('apply.daterangepicker', function(ev, picker) {
$(this).val(picker.startDate.format('DD/MM/YYYY hh:mm A'));
});
$("#duetime").on('cancel.daterangepicker', function(ev, picker) {
$(this).val('');
});
您应该触发 change()
以确保它在所有情况下都能完美运行;有时你有一些事件监听器,需要触发日期范围选择器的变化。
$('#date-picker-input').daterangepicker({
autoUpdateInput: false,
singleDatePicker: true,
showDropdowns: true,
timePicker: true,
locale: {
format: 'DD-MM-YYYY hh:mm:ss'
},
});
$("#date-picker-input").on('apply.daterangepicker', function(ev, picker) {
$(this).val(picker.startDate.format('DD/MM/YYYY hh:mm A')).change();
});
$("#date-picker-input").on('cancel.daterangepicker', function(ev, picker) {
$(this).val('').change();
});