Очистить значение bootstrap-datepicker
Я использую bootstrap-datepicker отсюда: https://github.com/eternicode/bootstrap-datepicker
версия: 2.3.2
У меня возникли проблемы с очисткой значений даты datepicker при нажатии кнопки. Я проверил API, но ничего не могу найти при очистке/сбросе параметра datepicker. Любая помощь приветствуется
Ответы
Ответ 1
Вы можете использовать jQuery для очистки значения ввода даты.
Например, с кнопкой и текстовым вводом следующим образом:
<input type="text" id="datepicker">
<button id="reset-date">Reset</button>
Вы можете использовать функцию .val() для jQuery.
$("#reset-date").click(function(){
$('#datepicker').val("").datepicker("update");
})
Ответ 2
У меня были подобные проблемы, и следующее работало для меня:
$('#datepicker').val('').datepicker('update');
Оба вызова метода были необходимы, иначе это не было понятно.
Ответ 3
Текущая версия 1.4.0 имеет clearBtn
вариант:
$('.datepicker').datepicker({
clearBtn: true
});
Помимо добавления кнопки в интерфейс, она позволяет вручную удалить значение из поля ввода.
Ответ 4
Я наткнулся на эту тему, пытаясь очистить уже установленную дату. Попытка:
$('#datepicker').val('').datepicker('update');
производится:
TypeError: t.dpDiv is undefined
https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js -- Line 8
Думая о том, что, возможно, нужно было включить оригинальный Datepicker для начальной загрузки, устраняет ошибку, но затем появляется оригинальный виджет Datepicker! - так что явно не так и не нужно.
Глядя дальше, сбой в jqueryui находится в:
/* Generate the date picker content. */
_updateDatepicker: function(inst) {
this.maxRows = 4; //Reset the max number of rows being displayed (see #7043)
datepicker_instActive = inst; // for delegate hover events
inst.dpDiv.empty().append(this._generateHTML(inst));
this._attachHandlers(inst);
и inst.pdDiv не существует.
Расследуя дальше - я понял, что нужно было:
$formControl = $duedate.find("input");
$formControl.val('');
$formControl.removeData();
Что решило мою проблему. Обратите внимание, что мне также требовался $ formControl.removeData(), иначе состояние виджета не будет повторно инициализировано до исходного состояния.
Я надеюсь, что это помогает кому-то еще. :-)
Ответ 5
На самом деле гораздо полезнее использовать метод из библиотеки $(".datepicker").datepicker("clearDates");
.Я рекомендую вам всегда смотреть на документацию библиотеки, вот тот, который я использовал для этого.
документация по методам начальной загрузки
Ответ 6
Вы можете использовать этот синтаксис для reset вашего бутстрапа datepicker
$('#datepicker').datepicker('update','');
ссылка http://bootstrap-datepicker.readthedocs.org/en/latest/methods.html#update
Ответ 7
Я знаю, что слишком поздно ответить, но в моем сценарии ниже код не работал.
$('#datepicker').val("");
$('#datepicker').val('').datepicker('update');
$('#datepicker').datepicker('update','');
вот мое решение.
$('#datepicker').val('').datepicker('remove').datepicker();
Сначала я установил значение datepicker, а затем удалил datepicker и снова повторно инициализировал datepicker. он разрешил мою проблему.
Ответ 8
Я столкнулся с этим потоком, пытаясь понять, почему даты не очищаются в IE7/IE8.
Это связано с тем, что для IE8 и старше требуется второй параметр для метода Array.prototype.splice().
Здесь исходный код в bootstrap.datepicker.js:
clear: function(){
this.splice(0);
},
Добавление второго параметра разрешило мою проблему:
clear: function(){
this.splice(0,this.length);
},