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

Как получить выбранное значение даты при использовании Bootstrap Datepicker?

Используя 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.

4b9b3361

Ответ 1

Вы можете попробовать это

$('#startdate').val()

или

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

Ответ 2

Для bootprap datepicker вы можете использовать:

$("#inputWithDatePicer").data('datepicker').getFormattedDate('yyyy-mm-dd');

Ответ 3

Bootprap datepicker (первый результат из поиска bootprap datepickcer) имеет способ получить выбранную дату.
http://bootstrap-datepicker.readthedocs.org/en/release/methods.html#getdate

GetDate:
Возвращает локализованный объект даты, представляющий внутренний объект даты первого datepicker в выборе.
Для многоточечных сборщиков возвращается выбранная последняя дата.

$('.datepicker').datepicker("getDate")

или

$('.datepicker').datepicker("getDate").valueOf() 

Ответ 4

Вообще говоря,

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

лучше всего, потому что

$('#startdate').val()

не работает, если у вас есть datepicker "inline"

Ответ 5

это работает со мной для inline datepicker (и другого)

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

Ответ 6

Если у вас уже указано количество уже выделенных дат и вы хотите определить, какая дата была нажата последним нажатием, вам понадобится следующее:

$('#startdate').data('datepicker').viewDate

viewDate возвращает объект даты JavaScript, поэтому вам нужно будет обработать его соответствующим образом.

Ответ 7

Если вы не хотите указывать дату в формате полнотекстовой строки, вы можете сделать это следующим образом:

$('#your-datepicker').data().datepicker.viewDate

Ответ 8

Попробуйте использовать этот HTML-код:

var myDate = window.document.getElementById("startdate").value;

Ответ 9

Мне удалось найти объект moment.js на выбранную дату с помощью следующего:

$('#datepicker').data('DateTimePicker').date()

Подробнее о moment.js и о том, как форматировать дату с помощью объекта moment.js.

Ответ 10

Я попытался с приведенными выше ответами, но они не сработали для меня; Так как user3475960 ссылался, я использовал $('#startdate').html(), который дал мне html-текст, поэтому я использовал его по мере необходимости... Может быть, кто-то воспользуется им.

Ответ 11

Здесь есть много решений, но, вероятно, лучшее, которое работает. Проверьте версию скрипта, которую вы хотите использовать.

Ну, по крайней мере, я могу дать вам мое 100% рабочее решение для

 версия: 4.17.45

самонастройки-datetimejs https://github.com/Eonasdan/bootstrap-datetimepicker Авторское право (c) 2015 Джонатан Петерсон

JavaScript

var startdate = $('#startdate').val(); 

Вывод выглядит так: 12.09.2018 03:05