Erforderliches Attribut Funktioniert nicht im Safari-Browser
Ich versucht habe folgenden code für das gewünschte Feld zu Benachrichtigen, die die erforderlichen Feld-aber es funktioniert nicht im safari-browser.
Code:
<form action="" method="POST">
<input required />Your name:
<br />
<input type="submit" />
</form>
Oben der code funktioniert in firefox. http://jsfiddle.net/X8UXQ/179/
Können Sie lassen Sie mich wissen, die javascript-code oder irgendeinen workarround? bin neu in javascript
Dank
Kommentar zu dem Problem - Öffnen
Möglich, Duplikat der Safari ist nicht die Anerkennung der "required" - Attribut. Wie um es zu beheben?
InformationsquelleAutor der Frage Maninblack | 2014-04-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Safari nicht unterstützt dieses Attribut verwenden, benötigen Sie JavaScript. Diese Seite enthält einen hacky Lösung, die Sie sollte hinzufügen, die gewünschte Funktionalität:
http://www.html5rocks.com/en/tutorials/forms/constraintvalidation/#toc-safari
HTML:
JavaScript:
Können Sie ersetzen Sie die Warnung mit irgendeiner Art von weniger hässliche Warnung, zeigen, wie ein DIV mit der Fehlermeldung:
und im HTML-Format:
(den Inhalt von style-Attribut sollte in CSS-Datei)
Der einzige Nachteil dieses Ansatzes ist es nicht, behandeln Sie die genaue Eingabe, die gefüllt werden muss. Es würde eine Schleife über alle Einträge im Formular und überprüfen Sie den Wert (und besser, das Häkchen für "erforderlich" - Attribut Präsenz).
InformationsquelleAutor der Antwort mikiqex
Wenn du mit jQuery dann unten der code ist viel besser. Setzen Sie einfach diesen code unten in der jquery.min.js Datei und es funktioniert für jeden und in jeder form.
Setzen Sie einfach diesen code auf Ihrer gemeinsamen .js-Datei und einbetten nach dieser Datei jquery.js oder jquery.min.js
Dieser code funktioniert mit die browser, die nicht die gewünschte Unterstützung (html5) Attribut
Haben einen schönen coding-Tag Freunde.
InformationsquelleAutor der Antwort Roni
Ich hatte das gleiche problem mit Safari und kann ich nur bitte Sie, alle einen Blick auf Webshim!
Fand ich die Lösungen für diese Frage und für diese ein sehr nützlich, aber wenn Sie wollen, zu "simulieren" native HTML5-input-Validierung für Safari, Webshim spart Ihnen eine Menge Zeit.
Webshim liefert einige "upgrades" für Safari und es hilft, um Dinge zu handhaben wie die HMTL5 datepicker oder die Formular-Validierung. Es ist nicht nur einfach zu implementieren, aber das sieht auch gut genug, nur verwenden es sofort.
Auch nützlich Antwort auf SO für die erste Einrichtung für webshim hier! Kopie des verlinkten post:
InformationsquelleAutor der Antwort tommygun
Ich gebaut habe, eine Lösung auf der Oberseite des @Roni 's ein.
Scheint es Webshim ist abwertend, da es nicht kompatibel mit jquery 3.0.
Ist es wichtig zu verstehen, dass Safari nicht validieren das erforderliche Attribut. Der Unterschied ist, was es mit ihm macht. Anstatt die Blockierung der Vorlage und zeigt eine Fehlermeldung tooltip neben dem Eingang, lassen Sie einfach das Formular Fluss weiter.
Dass gesagt wird, die checkValidity() ist implementiert in Safari und macht gibt uns false, wenn eine erforderliche eingereicht, ist nicht erfüllt.
So, in Reihenfolge zu "fix it" und zeigt auch eine Fehlermeldung mit minimalem Eingriff (kein extra Div ' s für die Abhaltung von Fehlermeldungen) und keine extra Bibliothek (außer jQuery, aber ich bin sicher, dass es getan werden kann, in plain javascript)., Ich hab diesen hack mit dem Platzhalter, um zu zeigen, standard-Fehlermeldungen.
InformationsquelleAutor der Antwort Juliomac
Fand ich einen tollen blog-Eintrag mit einer Lösung für dieses problem. Er löst es auf eine Weise, die ich bin bequem mit und bietet eine bessere user experience als die anderen Vorschläge hier. Es wird ändern Sie die Hintergrundfarbe der Felder zu bezeichnen, wenn die Eingabe gültig ist oder nicht.
CSS:
JS:
Credit: http://blueashes.com/2013/web-development/html5-form-validation-fallback/
(Hinweis: ich hatte erweitern die CSS von der post zu decken, textarea-und select-Felder)
InformationsquelleAutor der Antwort Bryce
Ich diese Lösung verwenden und funktioniert einwandfrei
InformationsquelleAutor der Antwort jamogon
Können Sie fügen Sie diese Ereignisprozedur zu einem Formular -:
InformationsquelleAutor der Antwort Matthias Bohlen
Innerhalb von each () - Funktion habe ich gefunden, alle DOM-element der text-Eingabe in der alten version der PC Safari, ich denke, dass dieser code nützlich für neuere Versionen auf dem MAC mit inputobj['prpertyname'] - Objekt, um alle Eigenschaften und Werte:
InformationsquelleAutor der Antwort Leslie
Den neuen Safari 10.1 veröffentlicht am 26 Mar, 2017, unterstützt jetzt die "required" - Attribut.
http://caniuse.com/#search=required
InformationsquelleAutor der Antwort fernanDOTdo