2013-04-23 6 views
5

Das iPad standardmäßig auf heute, wenn ein Fokus (aufgrund der nächsten/vorherigen Tasten und ich nehme Tab/Shift-Tab mit Bluetooth-Tastatur) z. Testen Sie mit http://jsbin.com/etovur/1 auf einem iPad.Wie iPad HTML5 Datum Standard leer/leer zu machen, wenn die nächste Taste

Frage: Gibt es einen Workaround, der sowohl auf dem iPad als auch auf dem iPhone funktioniert, um das Datum nicht standardmäßig auf heute zu machen, wenn nur durch das Feld navigieren?

Dies ist ein UI-Problem, wenn vorhandene Daten bearbeiten und mit Vor/Zurück durch die Felder zu navigieren, da es zu einem Rohling heute ändert sich z.B. Das Terminierungsdatum eines Mitarbeiters wird auf heute festgelegt und der Mitarbeiter wird entlassen.

Wir brauchen nur eine Lösung, die auf iPad/iPhone funktioniert, und achten Sie darauf, dass die input type=date Implementierung zwischen den beiden Geräten erhebliche Unterschiede aufweist. Desktop-Browser spielen keine Rolle, da wir ein nicht-natives Datumssteuerelement verwenden (um Probleme mit Abweichungen bei der Funktionsweise und dem Aussehen von Datumssteuerungselementen zu vermeiden oder um sicherzustellen, dass sie bereitgestellt werden). Das Problem tritt auf mindestens iPad mit iOS5 und iPhone mit iOS6 auf.

+0

Anmerkung 1: Die einzige Lösung, die ich denken kann, ist ein Kontrollkästchen hinzuzufügen zwischen leer und erforderlich, aber das scheint wie eine hässliche Lösung (vor allem, weil Kontrollkästchen nicht bekommen Fokus zu wählen, wenn nächste/vorherige Tasten auf der Touch-Tastatur). – robocat

+0

Hinweis 2: Android Chrome verfügt über eine bessere Datumsbenutzeroberfläche, da der Benutzer aus den Schaltflächen zum Abbrechen/Löschen/Einstellen auswählen muss. Android Chrome legt jedoch auch heute ein leeres Datum fest, wenn der Benutzer außerhalb des Datumsdialogs berührt. – robocat

+0

Hinweis 3: Vorausgesetzt, dass, wenn das Datum heute ist, dann der Benutzer gemeint leer ist keine gültige Lösung (der Benutzer muss in der Lage sein, heute als Datum einzugeben). – robocat

Antwort

0

Meist Arbeitslösung: siehe http://jsbin.com/etovur/5 - wenn die Datumseingabe wird nach einer Verzögerung um den Wert ‚‘ setzt Sie den Fokus.

setTimeout(function() { 
    document.getElementById('adate').value = ''; 
    }, 0); 

Das größte Problem ist, dass diese Abhilfe macht es schwer für den Benutzer heute holen (der Benutzer muss sich von heute blättern weg und wieder zurück heute holen). Da dies ein Effekt der implizierten vereinfachten Benutzeroberfläche des Datepicker auf iOS ist, glaube ich nicht, dass es eine brauchbare Lösung für meine ursprüngliche Frage geben kann.

Einige Möglichkeiten der Timing Bugs (nächste dann schnell nächste auf langsamen iPad?).