Holen Sie sich input-Wert von HTML5 input[type="date"] in chrome
In Chrom, ein tag wie
<input id="picker" type="date">
macht so ein text-Feld. Jedoch, ruft die versuchen, um seinen Wert mit so etwas wie
$("#picker").val()
gibt nichts zurück, bis ein gültiges Datum eingegeben wird oder abgeholt aus der dropdown-Liste.
Ich nahm einen Blick auf der Objekt der unmittelbaren Eigenschaften auf einen Tastendruck mit
$("#picker").keypress(function() {
var output = ""
for (var i in this) {
output += i +" value:"+ this[i] + "\n";
}
alert(output);
});
konnte aber nicht sehen, mein input in diesen. Prüfen Sie selbst, http://jsfiddle.net/5cN2q/
Meine Frage ist: Ist es möglich, den text aus einem input[type="date"] in chrome, wenn die Eingabe kein gültiges Datum?
InformationsquelleAutor MaxPRafferty | 2012-11-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den W3C-Date-State-spec definiert die Bereinigung Algorithmus:
Die wird aufgerufen, wenn der Wert des input-Elements, wie definiert in DOM Eingangswert spec:
Also die
value
Eigenschaft wird immer ein leerer string, wenn das Datum nicht gültig ist. Es scheint nicht zu sein jede Eigenschaft für "original/dirty/Benutzer eingegebene text-Wert" angegeben, da es nicht eine text-Eingabe, nachdem alle.IMO ist es eine gute Sache, es erleichtert die Formular-Validierung als ungültige Daten behandelt werden, als falsy-Werte (leere strings), es lässt auch Browser mehr frei implementieren Sie die Benutzeroberfläche für Datums-Eingaben.
Wenn Sie lieber eine nicht-W3C-Datum eingegeben haben, können Sie verwenden Sie einen text-Eingabe mit der guten alten JS Datum der Validierung und einen datepicker, wie die jQuery UI datepicker. Dies würde ermöglichen es Ihnen, zum abrufen der eigentliche text mit dem Wert des input-und ist viel mehr cross-browser-Lösung.
Ich bin mit Chrome Canary im moment (Version 25), diese version hat eine sehr robuste Validierung, die nicht erlauben die Eingabe eines ungültigen Datums-Werte (anders als die aktuelle stable). Hoffentlich wird es umgesetzt, in dem stable-release schon bald, und andere Browser werden hoffentlich noch Folgen.
=]
InformationsquelleAutor Fabrício Matté
Als die andere Antwort Sie nicht sehen können, der ursprüngliche Wert, Sie können jedoch verarbeiten-Validierung mit
ValidityState
Wenn Sie ändern Sie den Tag auf 30 und klicken Sie auf den link, Sie werden sehen, eine Fehlermeldung.
Genießen.
InformationsquelleAutor lamusique