Подтвердить что ты не робот

Очистить значение bootstrap-datepicker

Я использую bootstrap-datepicker отсюда: https://github.com/eternicode/bootstrap-datepicker

версия: 2.3.2

У меня возникли проблемы с очисткой значений даты datepicker при нажатии кнопки. Я проверил API, но ничего не могу найти при очистке/сбросе параметра datepicker. Любая помощь приветствуется

4b9b3361

Ответ 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");

.Я рекомендую вам всегда смотреть на документацию библиотеки, вот тот, который я использовал для этого.

документация по методам начальной загрузки

Ответ 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);
},