Ich verwende materializecss.com Datepicker. Wenn ich versuche, ein Datum mit Jquery festzulegen, wird das Datum nicht festgelegt. Hier ist mein Code: -
// Materialize Date Picker
window.picker = $('.datepicker').pickadate({
selectMonths: true, // Creates a dropdown to control month
selectYears: 100, // Creates a dropdown of 15 years to control year
format: 'dd/mm/yyyy'
});
<input type="text" id="Date" class="datepicker" />
Beim Klickereignis eines Buttons stelle ich das Datum ein: -
$("#Date").val('23/01/2015');
Wenn ich das Datepicker öffne, wird mir das heutige Datum angezeigt.
Wie stelle ich das Datum in materialize datepicker ein?
Materialize datepicker ist ein modifizierter pickadate.js picker.
Entsprechend ihrer API-Dokumente setzen Sie den Picker wie folgt:
var $input = $('.datepicker').pickadate()
// Use the picker object directly.
var picker = $input.pickadate('picker')
// Using arrays formatted as [YEAR, MONTH, DATE].
picker.set('select', [2015, 3, 20])
// Using JavaScript Date objects.
picker.set('select', new Date(2015, 3, 30))
// Using positive integers as UNIX timestamps.
picker.set('select', 1429970887654)
// Using a string along with the parsing format (defaults to `format` option).
picker.set('select', '2016-04-20', { format: 'yyyy-mm-dd' })
fügen Sie einfach das Format hinzu, das Ihr Datum so aussehen soll, wie in den Attributen Ihres Elements.
$('.datepicker').pickadate({
selectMonths: true, // Creates a dropdown to control month
selectYears: 15, // Creates a dropdown of 15 years to control year
format: 'dd-mm-yyyy' });
Sie können Datumspicker-Methoden verwenden, die in V1.0.0-rc.2
vorhanden sind.
<script>
document.addEventListener('DOMContentLoaded', function () {
var options = {
defaultDate: new Date(2018, 1, 3),
setDefaultDate: true
};
var elems = document.querySelector('.datepicker');
var instance = M.Datepicker.init(elems, options);
// instance.open();
instance.setDate(new Date(2018, 2, 8));
});
</script>
defaultDate
setzt ein Standarddatum, das im Eingabefeld des Datepickers angezeigt wird, ohne dass der Picker geöffnet werden muss.
instance.setDate()
wählt das Datum in datepicker aus, wenn Sie es öffnen.
Hinweis-new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);
Das Argument monthIndex
ist 0-basiert. Dies bedeutet, dass January = 0
und December = 11
Sie können die Optionen, die Sie standardmäßig verwenden möchten, bei init übergeben. Zum Beispiel würde der folgende js-Code mit Markup funktionieren:
const elems2 = document.querySelectorAll('.datepicker');
for (element of elems2) {
const date = element.dataset.defaultDate
if (date !== undefined) {
M.Datepicker.init(element, {defaultDate: new Date(date), yearRange: 15})
}
else {
M.Datepicker.init(element, {})
}
}
<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<input class="validate datepicker valid" required="required" data-default-date="2009-07-11 10:14:47 -0700" name='picker' type="text">
<label for="picker" class="active">Date Picker 10 years ago</label>
Alle Antworten mit pickadate () funktionieren in neueren Versionen von Materialise nicht mehr. Die Methode heißt jetzt datepicker (). Hier ist mein Code-Snippet:
var element = document.querySelector('.datepicker');
M.Datepicker.getInstance(element).setDate(new Date(2018,8,7), true);
$('#elementID').pickadate('picker').set('select', '21/05/2017', { format: 'dd/mm/yyyy' }).trigger("change");
Dies sollte Ihren Bedürfnissen in einer Zeile entsprechen. Auslöseränderung, die Sie möglicherweise brauchen oder nicht, hängt von Ihrer Situation ab. Wie ich brauche ich sie, damit die Bestätigung ausgelöst werden kann. Geben Sie auch Datumsangaben an, falls einige Personen dies benötigen.
var $input = $('.datepicker').pickadate()
// Use the picker object directly.
var picker = $input.pickadate('picker')