#javascript #jquery #bootstrap-datepicker
#javascript #jquery #bootstrap-datepicker
Вопрос:
Я использую этот код, чтобы получить дату из bootstrap-datepicker. Я нашел несколько вопросов с одной и той же проблемой, и ни один из них, похоже, не работает для меня. Я не уверен, чего мне не хватает.
<div id="dateCal"></div>
Это мой jQuery
$input = $("#dateCal");
$input.datepicker({
format: 'dd-mm-yyyy'
})
.on('changeDate', function(e){
console.log(e.date);
});
и вывод на консоль mu выглядит следующим образом:
Sat Jun 21 2014 00:00:00 GMT-0400 (EDT)
Что я делаю не так? Мне нужно, чтобы e.date выводился при установке параметра форматирования.
Комментарии:
1. И
$(e).val()
? Еслиe.date
это объект Date, он будет преобразован с использованием локальных настроек браузера при отображении…2. { console.log( $(e).val()); } — выдает неперехваченную ошибку типа: не удается прочитать свойство ‘toLowerCase’ из undefined … так что возвращает udnefined
Ответ №1:
При обработке событий в javascript (и jQuery или bootstrap) «e», передаваемый функции, является объектом события. Чтение e.date
может относиться к дате и времени события. Вы хотите читать this.value
, где это относится к элементу HTML, связанному с событием, или, в данном случае, к вашему полю даты.
Сделайте вместо этого:
console.log(this.value);
Комментарии:
1. Спасибо за это. Когда я это делаю, я получаю значение даты, но форматирование по-прежнему неверно. Я получаю 26.06.2014, в то время как мне нужно 06-26-2014.
2. Я предполагаю, что вам нужно использовать DateFormat вместо format . Вот пример его работы в jsFiddle: jsfiddle.net/a63P6/1
3. Спасибо за предложение. Однако это не тот же datepicker, и я решил проблему. Я опубликую позже, что я сделал.
4. Хорошая работа! Я использую его в
.on('changeDate', function(e){ })
порядке