Ответ 1
Вы можете попробовать это
$('#startdate').val()
или
$('#startdate').data('date')
Используя jquery и Bootstrap Datepicker, как мне получить новое значение даты, которое я выбрал, используя Bootstrap Datepicker? FYI, я использую Rails 3 и Coffescript.
Я установил datapicker, используя:
<input id="startdate" class="span2 datepicker" type="text" value="" name="startdate" default="2013-05-21" data-date="2013-05-21" data-behavior="datepicker">
<%= submit_tag 'Get Data using date', :id => 'get_data' %>
$(".datepicker").datepicker
endDate: new Date
format: "yyyy-mm-dd"
autoclose: true
minViewMode: 1
todayBtn: "linked"
Когда пользователь нажимает кнопку "Получить данные с использованием даты" рядом с ним, я буду использовать jQuery, чтобы получить новое значение даты, установленное параметром datepicker, предотвратить отправку формы и выполнить запрос ajax с использованием этого значения даты. Все ajax работает хорошо, за исключением получения правильного нового значения даты. Я пробовал оба из следующих, и он не дает мне новую дату, он возвращает только значения по умолчанию, которые я изначально установил.
sd1 = $('#startdate').attr('value')
console.log sd1
sd2 = $('#startdate').attr('data-date'))
console.log sd2
Я чувствую себя действительно глупым сейчас, но я не могу узнать, как получить новое значение даты, заданное параметром date_pnger bootstrap.
Вы можете попробовать это
$('#startdate').val()
или
$('#startdate').data('date')
Для bootprap datepicker вы можете использовать:
$("#inputWithDatePicer").data('datepicker').getFormattedDate('yyyy-mm-dd');
Bootprap datepicker (первый результат из поиска bootprap datepickcer) имеет способ получить выбранную дату.
http://bootstrap-datepicker.readthedocs.org/en/release/methods.html#getdate
GetDate:
Возвращает локализованный объект даты, представляющий внутренний объект даты первого datepicker в выборе.
Для многоточечных сборщиков возвращается выбранная последняя дата.
$('.datepicker').datepicker("getDate")
или
$('.datepicker').datepicker("getDate").valueOf()
Вообще говоря,
$('#startdate').data('date')
лучше всего, потому что
$('#startdate').val()
не работает, если у вас есть datepicker "inline"
это работает со мной для inline datepicker
(и другого)
$('#startdate').data('datepicker').date
Если у вас уже указано количество уже выделенных дат и вы хотите определить, какая дата была нажата последним нажатием, вам понадобится следующее:
$('#startdate').data('datepicker').viewDate
viewDate
возвращает объект даты JavaScript, поэтому вам нужно будет обработать его соответствующим образом.
Если вы не хотите указывать дату в формате полнотекстовой строки, вы можете сделать это следующим образом:
$('#your-datepicker').data().datepicker.viewDate
Попробуйте использовать этот HTML-код:
var myDate = window.document.getElementById("startdate").value;
Мне удалось найти объект moment.js на выбранную дату с помощью следующего:
$('#datepicker').data('DateTimePicker').date()
Подробнее о moment.js и о том, как форматировать дату с помощью объекта moment.js.
Я попытался с приведенными выше ответами, но они не сработали для меня; Так как user3475960 ссылался, я использовал $('#startdate').html()
, который дал мне html-текст, поэтому я использовал его по мере необходимости...
Может быть, кто-то воспользуется им.
Здесь есть много решений, но, вероятно, лучшее, которое работает. Проверьте версию скрипта, которую вы хотите использовать.
Ну, по крайней мере, я могу дать вам мое 100% рабочее решение для
версия: 4.17.45
самонастройки-datetimejs https://github.com/Eonasdan/bootstrap-datetimepicker Авторское право (c) 2015 Джонатан Петерсон
JavaScript
var startdate = $('#startdate').val();
Вывод выглядит так: 12.09.2018 03:05