Wie Sie programmgesteuert löschen von HTML5-Datums-Felder?
Ich bin auf der Suche nach einer Möglichkeit, programmgesteuert löschen von HTML5-Datums-Felder mit Javascript (speziell jQuery). Bisher habe ich versucht, zwei Methoden, die ich dachte, auf der Hand:
$('input[type=date]').val('');
$('input[type=date]').val('0000-00-00');
Aber keiner von Ihnen arbeiten auf der neuesten version von Chrome für den PC zumindest, nicht versucht haben, Sie mit anderen Browsern oder Plattformen noch. Gibt es einen API-Aufruf oder etwas, das Sie deaktivieren können Datum Felder in einer cross-browser Weg? Lösungen habe ich gesucht wie diese erfordern, dass der Benutzer deaktivieren Sie das Feld "Datum" in der Erwägung, dass muss ich dies programmgesteuert ausgeführt werden.
- Nicht Sie haben einen Wert standardmäßig? (So kann man es nicht ändern?)
- Nein, ein einfaches input[type=date] - Feld haben eine Standardeinstellung, 'dd/mm/yyyy' Platzhalter Wert auf mein system, wenn kein Wert angegeben ist.
- Ja, dass ist es, was ich meinte. Das ist
empty
denke ich. Sie wollen, dass es zu keinerlei Wert haben? - Ich will es leer, ja. 'dd/mm/yyyy' ist kein Wert, da Sie nicht erkannt werden, wenn Sie die Sonde, deren Wert mit Javascript, ist Sie einfach leer.
- Muss es leer sein, oder kann es scheinen einfach leer?
- Das Feld wird in einer Datenbank gespeichert werden, so kann ich nicht haben, es erscheinen leere, aber eigentlich immer noch enthalten, der ursprüngliche Wert, wenn das Formular gespeichert wird
Du musst angemeldet sein, um einen Kommentar abzugeben.
$("input[type=date]").val("")
funktioniert bei mir in chrome. Es setzt das Eingabefeld auf dd/mm/yyyy.Vielleicht es ist browser-spezifisch. Bei den meisten Browsern nur teilweise oder keine Unterstützung für diese Eingabe: http://caniuse.com/input-datetime
$("input[type=date]").val("")
in die Konsole ein.diese Zeile code funktioniert mit meinem browser (chrome) nicht getestet, die in anderen Browsern
Können Sie wieder den Platzhalter;
diese Zeile funktioniert mit meinem browser (chrome, aktuelle version)
Können Sie mit der reset-Funktion der form ?
Sie können dies tun, mit reset-Taste :
oder programmaticaly :
oder
reset()
Methode$('#testForm').trigger("reset");
Verwenden Sie die native
defaultValue
Eigenschaft:Dies funktioniert, solange das Formular keine eine erste
value
angegeben, wie gezeigt, in diesem fiddle.Diese Lösung prüft, ob ein Standardwert vorhanden ist und, wenn dem so ist, verwendet Sie zum zurücksetzen der Eingaben. Ansonsten, löscht er die Eingabe, indem Sie die Aktualisierung-Wert und valueAsDate.
Info auf valueAsDate verfügbar unter: w3c.org.
Wenn Sie nicht klar einem Feld "Datum", dies könnte auch davon abhängen, ein browser-bug.
Ich verbringe einige Zeit, bis ich herausfand, dass Sie nicht setzen Sie das Datum in Firefox, wenn das Datum-Steuerelement deaktiviert ist.
Siehe: https://bugzilla.mozilla.org/show_bug.cgi?id=1465979
Ohne die Fehler, ich bin in der Lage, deaktivieren Sie das Datum so: