In HTML5 wurde das placeholder
Attribut für input
Elemente eingeführt, mit dem ein ausgegrauter Standardtext angezeigt werden kann.
Leider unterstützt der Internet Explorer, einschließlich IE 9, dies nicht.
Es gibt bereits einige Platzhalter-Simulator-Skripte. Sie funktionieren normalerweise, indem Sie den Standardtext in das Eingabefeld einfügen, ihm eine graue Farbe geben und ihn wieder entfernen, sobald Sie das Eingabefeld fokussieren.
Der Nachteil dieses Ansatzes besteht darin, dass sich der Platzhaltertext im Eingabefeld befindet. So:
- Skripte können nicht einfach überprüfen, ob ein Eingabefeld leer ist
- Die serverseitige Verarbeitung muss mit dem Standardwert verglichen werden, um den Platzhalter nicht in die Datenbank einzufügen.
Ich hätte gerne eine Lösung, bei der der Platzhaltertext nicht in der Eingabe selbst enthalten ist.
Das beste meiner Erfahrung nach ist https://github.com/mathiasbynens/jquery-placeholder (empfohlen von html5please.com ). http://afarkas.github.com/webshim/demos/index.html hat auch eine gute Lösung in seiner viel umfangreicheren Bibliothek von Polyfills.
quelle
Mit einer jQuery-Implementierung können Sie die Standardwerte EINFACH entfernen, wenn es Zeit zum Senden ist. Unten ist ein Beispiel:
Ich weiß, dass Sie nach einem Overlay suchen, aber vielleicht bevorzugen Sie die Leichtigkeit dieser Route (jetzt wissen Sie, was ich oben geschrieben habe). Wenn ja, dann habe ich dies für meine eigenen Projekte geschrieben und es funktioniert wirklich gut (erfordert jQuery) und die Implementierung für Ihre gesamte Site dauert nur ein paar Minuten. Es bietet zunächst grauen Text, im Fokus hellgrau und beim Tippen schwarz. Es bietet auch den Platzhaltertext, wenn das Eingabefeld leer ist.
Richten Sie zuerst Ihr Formular ein und fügen Sie Ihre Platzhalterattribute in die Eingabe-Tags ein.
Kopieren Sie einfach diesen Code und speichern Sie ihn als placeholder.js.
Nur an einem Eingang verwenden
So empfehle ich Ihnen, es in allen Eingabefeldern Ihrer Site zu implementieren, wenn der Browser keine HTML5-Platzhalterattribute unterstützt:
quelle
Nachdem Sie einige Vorschläge ausprobiert und Probleme im IE festgestellt haben, funktioniert Folgendes:
https://github.com/parndt/jquery-html5-placeholder-shim/
Was mir gefallen hat - Sie fügen nur die js-Datei hinzu. Keine Notwendigkeit, es oder irgendetwas zu initiieren.
quelle
Die folgende Lösung bindet an Eingabetextelemente mit dem Platzhalterattribut. Es emuliert ein Platzhalterverhalten nur für den IE und löscht das Wertefeld der Eingabe beim Senden, wenn es nicht geändert wird.
Wenn Sie dieses Skript hinzufügen, scheint der IE HTML5-Platzhalter zu unterstützen.
quelle
Ich schlage Ihnen eine einfache Funktion vor:
Und um es zu benutzen, nennen Sie es so:
quelle
Mit dieser Methode habe ich eine recht einfache Lösung gefunden:
http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html
Es ist ein JQuery-Hack und hat bei meinen Projekten perfekt funktioniert
quelle
Sie können verwenden:
quelle
Einfach so:
quelle
Ich habe ein JQuery-Plugin geschrieben, um dieses Problem zu lösen. Es ist kostenlos.
JQuery-Verzeichnis:
http://plugins.jquery.com/project/kegles-jquery-placeholder
Website: www.kegles.com.br/jquery-placeholder/
quelle
Ich habe ein einfaches JQuery-Skript für Platzhalter entwickelt, das eine benutzerdefinierte Farbe zulässt und beim Fokussieren ein anderes Verhalten beim Löschen von Eingaben verwendet. Es ersetzt den Standardplatzhalter in Firefox und Chrome und bietet Unterstützung für IE8.
quelle
Placeholdr ist eine superleichte Drop-In-Platzhalter-jQuery-Polyfüllung, die ich geschrieben habe. Es ist weniger als 1 KB minimiert.
Ich habe dafür gesorgt, dass diese Bibliothek Ihre beiden Anliegen anspricht:
Placeholdr erweitert die Funktion jQuery $ .fn.val () , um unerwartete Rückgabewerte zu verhindern, wenn aufgrund von Placeholdr Text in Eingabefeldern vorhanden ist. Wenn Sie sich also an die jQuery-API halten, um auf die Werte Ihrer Felder zuzugreifen, müssen Sie nichts ändern.
Placeholdr wartet auf Formularübermittlungen und entfernt den Platzhaltertext aus den Feldern, sodass der Server einfach einen leeren Wert sieht.
Wieder ist es mein Ziel mit Placeholdr, eine einfache Drop-In-Lösung für das Platzhalterproblem bereitzustellen. Lassen Sie mich auf Github wissen, ob Sie noch etwas an der Unterstützung von Placeholdr interessiert sind.
quelle
Um das Plugin einzufügen und zu überprüfen, ob es perfekt funktioniert, muss jquery.placeholder.js
quelle
Hier ist eine reine Javascript-Funktion (keine Abfrage erforderlich), die Platzhalter für IE 8 und darunter erstellt und auch für Kennwörter funktioniert. Es liest das HTML5-Platzhalterattribut, erstellt ein span-Element hinter dem Formularelement und macht den Hintergrund des Formularelements transparent:
quelle
HINWEIS: Der Autor dieser Polyfill behauptet, dass sie "in so ziemlich jedem Browser funktioniert, den Sie sich vorstellen können", aber laut den Kommentaren gilt dies nicht für IE11, jedoch hat IE11 native Unterstützung, wie die meisten modernen Browser
Placeholders.js ist die beste Platzhalter- Polyfüllung, die ich je gesehen habe, ist leichtgewichtig, hängt nicht von JQuery ab, deckt andere ältere Browser (nicht nur IE) ab und bietet Optionen für einmal versteckte und einmal ausgeführte Platzhalter.
quelle
Ich benutze jquery.placeholderlabels . Es basiert darauf und kann hier vorgeführt werden .
arbeitet in ie7, ie8, ie9.
Das Verhalten ahmt das aktuelle Firefox- und Chrome-Verhalten nach. Dabei bleibt der Text "Platzhalter" im Fokus sichtbar und verschwindet erst, wenn etwas in das Feld eingegeben wurde.
quelle
Ich habe mein eigenes jQuery-Plugin erstellt, nachdem ich frustriert war, dass die vorhandenen Shims den Platzhalter im Fokus verbergen würden, was zu einer minderwertigen Benutzererfahrung führt und auch nicht mit dem Umgang von Firefox, Chrome und Safari übereinstimmt. Dies ist insbesondere dann der Fall, wenn eine Eingabe beim ersten Laden einer Seite oder eines Popups fokussiert werden soll, während der Platzhalter angezeigt wird, bis Text eingegeben wird.
https://github.com/nspady/jquery-placeholder-labels/
quelle