1

Я использую Eternicode's fork of the bootstrap-datepicker library, и до сих пор все идет хорошо для его создания, но я хочу получить дату, чтобы использовать ее в своей логике после изменения даты.Как получить измененную дату от bootstrap-datepicker

$('#calendar').on('changeDate', function(event, date) { 
    // how to pop alert message to print the date I've chosen ? 
}); 

Как это сделать?

ответ

8

Как версия described in the docs, версия bootstrap-datepicker Eternicode добавляет три атрибута к событию changeDate, которое может использоваться для доступа к недавно выбранной дате. Вас будет интересовать либо свойство .date (которое указывает на фактическое date object, представляющее выбранную дату), либо метод .format, который вы можете использовать, чтобы получить дату в виде строки.

Предполагая, что в простейшем случае (когда у вас есть один сборщик, и вы хотите, чтобы получить дату в виде строки в том же формате, что вы инициированные в DatePicker с), вы просто хотите вызвать .format() без аргументов:

$('#calendar').on('changeDate', function(event) { 
    alert(event.format()); 
}); 

Вот JSFiddle показывая это в действии: http://jsfiddle.net/bhm7p/3/

+0

На самом деле ваша скрипка содержит другой код. Он вызывает .datepicker() до .on() - это важно. – buffjape

+0

@ buffjape хорошо, конечно - если вы не назовете '.datepicker()' в какой-то момент кода, то у вас нет фида. Но обратите внимание, что вызов '.datepicker()' просто возвращает коллекцию jQuery, для которой он был вызван для цепочки, а не какой-либо специальный объект datepicker - поэтому вам не нужно называть '.on()' специально для результата вызов '.datepicker()', вам просто нужно называть '.datepicker' где-то в вашем коде. См. Http://jsfiddle.net/bhm7p/33/ для иллюстрации этого. –

-1

Есть две вещи, которые вы могли бы попробовать.

Попробуйте реализации этой линии:

$('#startdate').val() 

Или это один:

$('#startdate').data('date') 

Дрю Т. предлагает использовать .val() - также очень эффективно.

$('#calendar').on('changeDate', function(event, date) { 
    var date = $('#calendar').val(); 
    alert(date); 
}); 

Надеюсь, это поможет!

-1

на самом деле основной, как это:
вы получите доступ к дате со стороны .on случае, разобранного параметру e. от e вы не можете получить доступ к .getDate

$('#calendar').on('changeDate', function(e) { 
    alert(e.getDate()+'/'+e.getMonth()+e.getFullYear()); 
}); 

если вы не можете понять, как это произошло, вы можете поместить ответ в console.log(e), а не alert(e.getDate), так что вы можете получить четкое представление о том, что доступ.