2017-02-07 3 views
0

AMP-Formular ermöglicht mir nur die HTML5-Formularvalidierung, um Benutzereingaben zu validieren. Es funktioniert gut in Desktop-Chrome-Browser. Aber Safari konnte die HTML5-Formularvalidierung bisher nicht unterstützen. Ich habe eine Lösung gefunden, benötigt externes Javascript, um die Formularprüfung im Safari-Browser zu implementieren. Aber in meinem Fall erlaubt AMP mir das nicht.AMP-Formularvalidierung für Safari

Gibt es irgendwelche Hacks oder Tricks, HTML5 Validierungseingaben für Safari zu umgehen?

Antwort

1

Versuchen Sie, Ihr AMP-Dokument mit der AMP by Example amp-form demo zu vergleichen. Die Erweiterung amp-form implementiert ein Polyfill für die Formularüberprüfung API für Browser, die native Überprüfung nicht unterstützen. Wenn Sie in Safari-Versionen ohne native Unterstützung amp-form verwenden, sollte das Polyfill-Verhalten automatisch ausgeführt werden.

Die polyfill Validierung sollte in etwa so aussehen: An example of the amp-form polyfill validation UI. There is a text bubble saying "value missing" pointing to a text field labeled "Name..." above a "Subscribe" button.

0

Es wurde in diesem erwähnt HTML5 documentation dass:

Obwohl Safari die Beschränkungsvalidierungs API, wie dieses Schreiben (Version 6), Safari mit Beschränkungsvalidierungsfragen Einreichung eines Formulars wird nicht verhindern, unterstützt .

Der einfachste Weg, um dies zu umgehen ist die gleiche Vorgehensweise wie die oben beschriebene Problemumgehung, geben Sie allen Formularen das novalidate Attribut und manuell Formulareinreichungen unter Verwendung preventDefault zu verhindern.

Damit können Sie diese thread überprüfen möchten, wobei es Richtlinien für AMP Forms Unterstützung und auch Probleme gibt, wie Forms should respect the novalidate attribute zu verfolgen. Sehen Sie die gegebenen Codes here und sehen Sie es wird Ihnen helfen.