jQuery Datepicker gewähltes Datum gesetzt, on the fly
-
03-07-2019 - |
Frage
Wie kann ich das gewählte Datum von jquery Datumsauswahl ändern sich dynamisch on the fly? Ich habe sagen, eine Inline-Datumsauswahl erstellt. Dann, nach einiger Zeit, ich möchte ein anderes Datum widerzuspiegeln, ohne die Datepicker von Grund auf neu zu erstellen.
ich die setDate Methode versucht, aber hat nicht funktioniert, und es gibt nicht viel Dokumentation in der doc .
Es gibt einen anderen (erweitert?) Plugin hier , aber ich möchte verwenden, das Plugin, das mit jquery.ui.all.js ausgeliefert wird.
Lösung
Welche Version von jQuery-UI verwenden Sie? Ich habe folgendes mit 1.6r6 getestet, 1.7 und 1.7.1 und es funktioniert:
//Set DatePicker to October 3, 2008
$('#dateselector').datepicker("setDate", new Date(2008,9,03) );
Andere Tipps
Überprüfen Sie, ob das Datum, das Sie es liegt innerhalb des zulässigen Zeitraums, wenn die minDate oder MaxDate Optionen werden eingestellt versuchen.
Dieses Beispiel zeigt, wie Standardwert in dem Drop-Down-Kalender und den Wert in dem Textfeld zu verwenden. Es zeigt auch, wie Standardwert zum vorherigen Datum einzustellen.
selectedDate ist eine weitere Variable, die aktuell ausgewählte Datum des Kalendersteuer
hält var date = new Date();
date.setDate(date.getDate() - 1);
$("#datepicker").datepicker({
dateFormat: "yy-mm-dd",
defaultDate: date,
onSelect: function () {
selectedDate = $.datepicker.formatDate("yy-mm-dd", $(this).datepicker('getDate'));
}
});
$("#datepicker").datepicker("setDate", date);
Darauf hingewiesen, dass für Datepicker von Keith Wood ( http://keith-wood.name/datepickRef.html < die folgenden Werke / a>) - beachten Sie, dass die Einstellung des Standarddatums ist zuletzt:
$('#datepicker').datepick({
minDate: 0,
maxDate: '+145D',
multiSelect: 7,
renderer: $.datepick.themeRollerRenderer,
***defaultDate: new Date('1 January 2008')***
});
Aus irgendeinem Grund, in einigen Fällen konnte ich die setDate Arbeit machen.
Eine Abhilfe, die ich gefunden ist, einfach den Wert Attribut der gegebenen Eingabe zu aktualisieren. Natürlich ist der picker selbst nicht aktualisiert wird, aber wenn das, was Sie sehen nur ist das Datum angezeigt, es funktioniert gut.
var date = new Date(2008,9,3);
$("#your-input").val(date.getMonth()+"/"+date.getDate()+"/"+date.getFullYear());
// Will display 9/3/2008 in your #your-input input
$('.date-pick').datePicker().val(new Date()).trigger('change')
schließlich, dass das, was ich in den letzten paar Stunden sehen! Ich brauche Änderungen zu initiieren, nicht nur Gründungsdatum in Textfeld!
setDate scheint nur ein Problem mit einem Inline-Datepicker in jQuery UI verwendet werden, die spezifische Fehler ist InternalError. Zu viel Rekursion
Dies funktioniert für mich:
$("#dateselector").datepicker("option", "defaultDate", new Date(2008,9,3));
Dies ist ein alter Thread, aber ich möchte nur einige Informationen geben, wie ich verwendet habe. Wenn Sie heute Datum einstellen möchten, können Sie einfach anwenden wie unten.
$("#datepickerid").datepicker("setDate", "0");
Wenn Sie vor ein paar Tagen setzen / nach dem aktuellen Datum dann das Symbol Symbol -/+
verwenden, wie viele Tage Sie wollen wie unten.
$("#datepickerid").datepicker("setDate", "-7");
$("#datepickerid").datepicker("setDate", "+5");
hatte ich eine Menge Ärger mit der setDate Methode. scheint nur in v1 zu arbeiten. Was scheint aber zu funktionieren wird, um die dpSetSelected Methode:
$("#dateselector").dpSetSelected(new Date(2010, 0, 26).asString());
viel Glück!
In HTML können Sie Ihre Eingabefeld mit Datumsauswahl wie folgt hinzufügen
<input class="form-control date-picker fromDates" id="myDate" type="text">
und dann in Java-Skript, Ihre picker initialisieren und Ihren Wert für das Datum wie folgt festgelegt,
$('.fromDates').datepicker({
maxDate: '0',
dateFormat: "dd/mm/yy",
changeYear: true,
changeMonth: true,
yearRange: "-100:+0"
});
var myDateVal = moment('${value}').format('DD/MM/YYYY');
$('#myDate').datepicker().datepicker('setDate', myDateVal );
(Im hier from Attribut zeigt die vorherigen Daten des aktuellen Datums)
oder Sie können einfach haben
$('.date-pick').datePicker().val(new Date()).trigger('change')