Як атрымаць абранае значэнне даты, выкарыстоўваючы 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 запыт з выкарыстаннем гэтага значэння даты. Усе Аякс працуе добра, для атрымання правільнага новага значэння даты, за выключэннем. Я паспрабаваў абодва з наступных дзеянняў, і гэта не дае мне новую дату, ён вяртае толькі па змаўчанні я першапачаткова усталяваны.

sd1 = $('#startdate').attr('value')
console.log sd1

sd2 = $('#startdate').attr('data-date'))
console.log sd2

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

36

9 адказы

Для пачатковай загрузкі DatePicker вы можаце выкарыстаць:

$("#inputWithDatePicer").data('datepicker').getFormattedDate('yyyy-mm-dd');
50
дададзена
Гэта працуе для мяне. Вялікі дзякуй!
дададзена аўтар Stef Hej, крыніца
Вельмі карысна! Калі DatePicker мае некалькі дат, дата вяртаецца ў падзеях заўсёды першая ў паслядоўнасці, незалежна ад абранай даты ў календары. Элемент дадзеныя аб'ект заўсёды мае фактычную дату пстрыкнуў.
дададзена аўтар TombMedia, крыніца

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

$('#startdate').val()

або

$('#startdate').data('date')
42
дададзена
Гэта на самай справе ўсё даты і часу значэнне, якое ўключае ў сябе час. Падобна на тое, гэта тое, што ў яго пытаюцца, хоць.
дададзена аўтар guival, крыніца
дзякуй вельмі sir..i шукаў яго з 6 гадзін ... Цяпер я атрымаў гэтую працу ... Вялікі дзякуй, сэр ... і стань дзякуючы майму Алах ...
дададзена аўтар Muhammad Sufiyan, крыніца
Для мяне першы $ ( '# StartDate'). Вал() працаваў ідэальна. дзякуй
дададзена аўтар Ryan, крыніца
Не маглі б вы сказаць мне, калі ласка, які Datepicker кампанент вы карыстаецеся? Там няма афіцыйнай адзін, і шмат 3d партыі, таму я пытаюся.
дададзена аўтар momijigari, крыніца
26
дададзена
Чаму не аўтар прывядзе прыклад?! шукалі гэты дурны метад занадта доўга. І чаму гэта не адказ?!
дададзена аўтар cauchy, крыніца

Наогул кажучы,

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

лепш за ўсё, таму што

$('#startdate').val()

не працуе, калі ў вас ёсць Datepicker «убудаваны»

8
дададзена

гэта працуе са мной инлайн DatePicker (і іншы)

$('#startdate').data('datepicker').date
3
дададзена

Калі ўжо ёсць цэлы шэраг дат ўжо выдзелены і хочаце <�моцны> вызначыць, якая дата апошняга кліка , то вам неабходна наступнае:

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

viewDate returns a JavaScript date object so you'll need to handle it accordingly.

2
дададзена

Паспрабуйце гэта з дапамогай HTML, як тут:

var myDate = window.document.getElementById("startdate").value;
1
дададзена
Я downvoted вас па памылцы. Вы можаце змяніць свой адказ, так што я магу выправіць upvote? На жаль пра гэта.
дададзена аўтар Maxime, крыніца

Калі вы wan't дата ў фармаце поўнага тэксту радка вы можаце зрабіць гэта наступным чынам:

$('#your-datepicker').data().datepicker.viewDate
1
дададзена

Я паспрабаваў з вышэйпрыведзенымі адказамі, але яны не працавалі для мяне; Так, як user3475960 называюць, я выкарыстаў $ ( «# StartDate»). HTML() , які даў мне тэкст HTML, так што я выкарыстаў яго па меры неабходнасці ... Можа быць нейкі адзін будзе выкарыстоўваць яго ..

0
дададзена