Wie laufen die Datumsauswahl auf den ersten onclick-Ereignis?
Ich bin mit diesem Datumsauswahl aus jqueryui.
Wenn Sie einen Blick auf diese Seite, dann werden Sie feststellen, dass Sie das gerade geschrieben habe in einer Funktion wie dieser:
$(function() {
$("#datepicker").datepicker();
});
</script>
Aber ich will öffnen meine Datumsauswahl auf ein Textfeld klicken-Ereignis.
So habe ich dies geschrieben:
$("#datepicker").datepicker();
in einer Funktion, die ich rufe auf onclick-Ereignis der textbox.
Aber in diesem gibt es ein problem kommen.
Ich bin nur immer über den Datum-picker auf das zweite mal, dass ich klicken Sie auf das Feld text ein.
Wenn ich auf der ersten Zeit, nachdem die Seite geladen wird, dann wird der Datum-picker wird nicht kommen, aber sobald ich auf das zweite mal dann über den Datum-picker kommt.
Warum? Und kann ich es auf den ersten Klick?
Ja, ich weiß, passiert das schon perfekt, wenn ich den ersten code, aber ich will es in meine Funktion.
EDIT:
Jetzt werde ich erklären, an alle Jungs, was genau ich mache.
Meine Anforderung ist wie folgt:
1) Wenn ich wählen Sie das Datum der ersten Zeit. Daten vor dem heutigen Datum sollte deaktiviert werden, Kalander.
2) wenn ich Jetzt wählen Sie das Datum, das zweite mal in den Kalender, das Datum sollte beginnen einen Tag nach dem vorherigen Datum.
Ich habe wie folgt geschrieben....
$(function() {
$('#from').datepicker({
defaultDate: "+5d",
changeMonth: true,
numberOfMonths:1 ,
minDate:"+0d",
dateFormat: 'DD, MM d, yy',
onSelect: function(selectedDate) {
var option = this.id == "from" ? "minDate" : "maxDate";
var instance = $(this).data("datepicker");
var date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
dates.not(this).datepicker("option", option, date);
}
});
});
Diese funktioniert perfekt auf eine Forderung,
aber für die zweite Anforderung, die ich brauche, um zu überprüfen zuerst, ob es ein Textfeld Wert. Wenn es gibt keine dann
Sie wählen sollten, direct +1, um das Datum und die vorherigen Daten sollten deaktiviert werden.
Wie dies zu tun?
- Nicht sicher, warum Sie wollen, dass es in einer separaten Funktion?? Ich bin noch ziemlich Neuling in jQuery, aber ich denke, die
.datepicker()
eigentlich fügt es an das onclick-Ereignis, so es sollte keinen Grund geben um Sie Ihrem eigenen onclick-Ereignis? - versuche, auf benutzerdefinierte onclick-Ereignis.....siehe mein Kommentar auf @Balu....u bekommen, warum ich versuche, das add-on onclick benutzerdefiniertes Ereignis...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Grund nicht erscheint auf den ersten Klick ist da der Moment, in dem Sie Sie auf es das erste mal, es ist nicht registriert, wie ein datepicker. Es hat daher keine onclick-Ereignis erzählen, daß es sollte zeigen, datepicker, wenn Sie darauf klicken.
Auf den zweiten Klick, aber Sie haben es als einen datepicker in den ersten Klick (und das hat jetzt ein onclick-Ereignis, wo der datepicker angezeigt werden). Das datepicker-onclick-Ereignis ausgelöst wird, zeigt der picker.
Wie bereits in anderen Antworten, dies ist nicht der empfohlene Weg, es zu tun. Aber wenn Sie wirklich wollen, es zu binden onclick und nicht "onload" können Sie die Farbauswahl auf den ersten Klick-by-doing -
Dies registrieren, wird das element als ein datepicker und zeigen, dann zeigen Sie an der gleichen Zeit.
Stellen Sie sicher, dass Sie den Aufruf der datepicker beim laden der Seite, und nicht mit dem onclick-Ereignis.
Wenn durch Zufall jemand wollen, um den datepicker in einem glyphicon-Symbol und das Eingabefeld machte ich die folgenden:
html-Teil:
javascript-Teil:
Ich glaube, Sie missverstehen die Bedeutung von:
das ist das gleiche wie:
und
Durch die Einhausung der
$("#datepicker").datepicker();
Sie einfach sagen, den browser zum hinzufügen von.datepicker()
Ereignis, um das date-Feld, angezeigt durch die#datapicker
- ID während der document-ready-event (wenn das Dokument geladen ist und bereit für die Bearbeitung).NICHT durch einklammerung, würden Sie NICHT fügen Sie die event-handler erst, nachdem das Dokument fertig ist, während der javascript laden (oder, wenn es aufgerufen wird), oder die Funktion aufrufen, wenn Sie eingeschlossen es dort.
Beachten Sie, dass, wenn Sie tun:
erhalten Sie die handler Hinzugefügt, wenn diese Funktion ausgeführt wird, die Probleme verursachen können, wenn Sie dann rufen Sie wieder:
habe ich verwendet, wie dies von @Simen Echholt Antwort
Würd ich nannte es in der js-Funktion, und es funktioniert.
Siehe das code-snippet:
Schritt-1: In der Datei: timepicker.jsp
Schritt-2:In der Datei timepicker.js
Schritt 3: Die crux ist: Aufruf der .timepicker('show'), zeigt der timepicker in der ersten Zeit selbst.
Fügen Sie eine Funktion hinzu, die auf div onclick="removeFocus()" und fügen Sie konzentrieren removel-Skript.