Mobile Safari unterstützt ein Attribut für Eingabeelemente namens autocapitalize [ hier dokumentiert ], wenn diese Option deaktiviert ist stoppt das iPhone, indem es die Texteingabe in dieses Feld aktiviert, was für URL- oder E-Mail-Felder nützlich ist.
%Vor%Aber dieses Attribut ist in html 5 nicht gültig (oder eine andere Spezifikation, soweit ich weiß), so dass es in html eine ungültige html-Seite erzeugt, was ich tun möchte, ist in der Lage, dieses Attribut zu bestimmten hinzuzufügen Felder laden mit JavaScript mit etwas in der Art:
%Vor%welches das korrekte Attribut in Firefox und Desktop Safari hinzufügt, aber nichts in Mobile Safari zu tun scheint, irgendwelche Ideen warum?
Randnotiz. Sie können das Benutzererlebnis unter iOS noch verbessern, indem Sie den Typ der Eingabe als "E-Mail" festlegen, um automatisch die "E-Mail" -Tastatur aufzurufen (etwas bessere Zeichen zum Eingeben einer E-Mail).
%Vor%Hier finden Sie einige Dokumentationen zu den Eingabearten kann die iOS-Tastatur steuern.
Es ist genauso ungültig, wenn Sie es per Skript hinzufügen oder wenn Sie es im Markup hinzufügen. Es ist nur, dass der Validator es nicht bemerken kann, wenn Sie es per Skript hinzufügen.
Fügen Sie es einfach in das Markup ein und fügen Sie einen Kommentar wie <!-- the "autocapitalize" attribute is an Apple proprietary extension for the iPhone to change its IME behaviour -->
hinzu, damit Leute, die den Code im Validator betrachten, wissen, was los ist.
Also konnte ich jQuery nicht dazu bringen, es zu tun, sondern einfach altes JavaScript, wie ddkilzer vorgeschlagen hat, also stelle ich diese Funktion zusammen, um die Option autocapitalize = 'off' auf alle Eingaben mit einer bestimmten Klasse anzuwenden:
%Vor%Tags und Links javascript iphone html5 mobile-safari