Wie erhalte ich mit jquery und dem Bootstrap Datepicker den neuen Datumswert, den ich mit dem Bootstrap Datepicker ausgewählt habe? Ich benutze Rails 3 und Coffescript.
Ich habe den Datapicker eingerichtet mit:
<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"
Wenn ein Benutzer auf die Schaltfläche "Daten mit Datum abrufen" daneben klickt, werde ich mit jQuery den vom datepicker festgelegten neuen Datumswert abrufen, das Senden des Formulars verhindern und eine Ajax-Anforderung mit diesem Datumswert ausführen. Der ajax läuft gut, bis auf den korrekten neuen Datumswert. Ich habe beide der folgenden Schritte ausprobiert, und es gibt mir nicht das neue Datum, es werden nur die Standardeinstellungen zurückgegeben, die ich anfangs festgelegt habe.
sd1 = $('#startdate').attr('value')
console.log sd1
sd2 = $('#startdate').attr('data-date'))
console.log sd2
Ich fühle mich jetzt wirklich dumm, aber ich kann nicht herausfinden, wie man den neuen Datumswert erhält, der vom Bootstrap Datepicker gesetzt wird.
Sie können es versuchen
$('#startdate').val()
oder
$('#startdate').data('date')
Für Bootstrap Datepicker können Sie Folgendes verwenden:
$("#inputWithDatePicer").data('datepicker').getFormattedDate('yyyy-mm-dd');
Bootstrap Datepicker (das erste Ergebnis der Bootstrap-Datepickcer-Suche) verfügt über eine Methode, um das ausgewählte Datum abzurufen.
http://bootstrap-datepicker.readthedocs.org/de/release/methods.html#getdate
verabredung bekommen:
Gibt ein lokalisiertes Datumsobjekt zurück, das das interne Datumsobjekt des ersten Datumsauswahlfelds in der Auswahl darstellt.
Bei Mehrfachauswahl-Kommissionierern wird das zuletzt ausgewählte Datum zurückgegeben.
$('.datepicker').datepicker("getDate")
oder
$('.datepicker').datepicker("getDate").valueOf()
Allgemein gesagt,
$('#startdate').data('date')
ist am besten, weil
$('#startdate').val()
funktioniert nicht, wenn Sie ein Datepicker "Inline" haben
das funktioniert bei mir für Inline datepicker
(und die andere)
$('#startdate').data('datepicker').date
Wenn Sie bereits eine Reihe von Datumsangaben markiert haben und bestimmen möchten, welches Datum zuletzt angeklickt wurde, benötigen Sie Folgendes:
$('#startdate').data('datepicker').viewDate
viewDate
gibt ein JavaScript-Datumsobjekt zurück, sodass Sie es entsprechend behandeln müssen.
Versuchen Sie dies mit HTML wie hier:
var myDate = window.document.getElementById("startdate").value;
Wenn Sie das Datum im Volltextformat haben möchten, können Sie dies folgendermaßen tun:
$('#your-datepicker').data().datepicker.viewDate
Ich habe es mit den obigen Antworten versucht, aber sie haben für mich nicht funktioniert; Als User3475960 bezeichnete, habe ich $('#startdate').html()
verwendet, was mir den HTML-Text gab, also habe ich es als notwendig verwendet ... Vielleicht wird jemand davon Gebrauch machen ..
Hier gibt es viele Lösungen, aber wahrscheinlich die beste, die funktioniert. .__ Überprüfen Sie die Version des Skripts, das Sie verwenden möchten.
Zumindest kann ich Ihnen meine 100% ige Arbeitslösung geben
Version: 4.17.45
bootstrap-datetimejs https://github.com/Eonasdan/bootstrap-datetimepicker Copyright (c) 2015 Jonathan Peterson
JavaScript
var startdate = $('#startdate').val();
Die Ausgabe sieht folgendermaßen aus: 12.09.2018 03:05