Wie setze ich die Datumsauswahl-Kalenderwerte zurück? .. Die Min- und Max-Datumsbeschränkungen?
Das Problem ist, dass beim Löschen der Daten (durch Löschen der Textfeldwerte) die vorherigen Datumsbeschränkungen weiterhin angewendet werden.
Ich habe die Dokumentation durchgesehen und nichts ist als Lösung herausgesprungen. Ich konnte auch keine schnelle Lösung für eine SO / Google-Suche finden
http://jsfiddle.net/CoryDanielson/tF5MH/
Lösung:
// from & to input textboxes with datepicker enabled
var dates = $("input[id$='dpFrom'], input[id$='dpTo']");
// #clearDates is a button to clear the datepickers
$('#clearDates').on('click', function(){
dates.attr('value', '');
dates.each(function(){
$.datepicker._clearDate(this);
});
});
_.clearDate () ist eine private Methode des DatePicker-Objekts. Sie werden es nicht in der öffentlichen API auf der Website von jQuery UI finden, aber es funktioniert wie ein Zauber.
quelle
this
genau in _clearDates () enthalten istHast du versucht:
Das sollte gemäß der API-Dokumentation funktionieren
quelle
('setDate', null)
ich das gewünschte Format (TT / MM / JJJJ) , aber wenn ich es verwende, habe ich MM / TT / JJJJ ... der einzige Unterschied ist die Verwendung von('setDate', null)
, eine Idee warum?Sie müssen nur die Optionen erneut auf null setzen:
Ich habe deine jsfiddle geändert: http://jsfiddle.net/tF5MH/9/
quelle
date.datepicker( "option" , {setDate: null, minDate: null, maxDate: null} );
quelle
Versuchen Sie, den Clearing-Code in Folgendes zu ändern:
quelle
Versuchen Sie dies. Dadurch wird eine Schaltfläche zum Löschen des JQuery-Kalenders hinzugefügt, mit der das Datum gelöscht wird.
quelle
document.getElementById(this.id).value = '';
durch$(this).val('').change();
macht es noch besser, weil dann auch alle etablierten Änderungshandler aufgerufen werden.Setzen Sie die maximalen Datumsattribute auf Ihrem Datepicker zurück, wenn Sie auf Löschen klicken.
Von der jquery-Website
quelle
Die offensichtliche Antwort war die, die für mich funktioniert hat.
Dabei ist $ ('# datepicker') die ID des Eingabeelements.
quelle
.val('')
wird die Eingaben geleert, die Einschränkungen für die Datumsauswahl in den Kalendern werden jedoch nicht aufgehoben.Ich weiß, dass es etwas zu spät ist, aber hier ist ein einfacher Code-Frieden, der es für mich getan hat:
quelle
Eine modifizierte Version der Lösung von Leniel Macaferi, um zu berücksichtigen, dass die Rücktaste eine Verknüpfung zum Zurückblättern in IE8 ist, wenn ein Textfeld keinen Fokus hat (was anscheinend der Fall ist, wenn die Datumsauswahl geöffnet ist).
Es wird auch verwendet
val()
, um das Feld zu löschen, da_clearDate(this)
es bei mir nicht funktioniert hat.quelle
Meine Datepicker- Initialisierung sieht folgendermaßen aus:
Die Standardschaltfläche "Fertig" enthält also den Text "Löschen" .
Jetzt finden Sie in datepicker.js die interne Funktion '_attachHandlers'. Es sieht so aus:
Und ändern Sie die Versteckfunktion so, dass sie wie folgt aussieht:
quelle
Ich benutze diesen Code, um das Feld und alle Spielereien zu löschen. Ich brauchte ein leeres Feld für meinen Anwendungsfall
Aus irgendeinem Grund
.val('')
würde das bei mir nicht funktionieren. Aber jQuery zu umgehen hat es geschafft. Meiner Meinung nach ist es ein Fehler, dass es keine .datepicker-Option ('clear') gibt.quelle
Mein Weg, um dieses Problem zu lösen
Ändern Sie die var-Steuerelemente in ui.js.
Fügen Sie dann eine clearText-Variable hinzu
Und vor der Showfunktion
quelle
quelle
In Firefox erledigt es meine Arbeit in Form (programmgesteuert), wobei die Datumsauswahl standardmäßig deaktiviert ist:
quelle
Bitte versuchen Sie diese Lösung, es wird richtig funktionieren, wie ich es versucht habe
quelle