Ich möchte, dass das Suchfeld auf meiner Webseite das Wort "Suche" in grauer Kursivschrift anzeigt. Wenn das Feld den Fokus erhält, sollte es wie ein leeres Textfeld aussehen. Wenn bereits Text enthalten ist, sollte der Text normal angezeigt werden (schwarz, nicht kursiv). Dies hilft mir, Unordnung zu vermeiden, indem ich das Etikett entferne.
Übrigens, dies ist eine On-Page- Ajax- Suche, daher gibt es keine Schaltfläche.
javascript
html
Michael L Perry
quelle
quelle
Antworten:
Wenn Sie diese Funktion nur für neuere Browser verwenden möchten, können Sie auch die Unterstützung verwenden, die das Platzhalterattribut von HTML 5 bietet :
In Ermangelung von Stilen sieht dies in Chrome folgendermaßen aus:
Sie können Demos hier und in HTML5 Placeholder Styling mit CSS ausprobieren .
Überprüfen Sie unbedingt die Browserkompatibilität dieser Funktion . Unterstützung in Firefox wurde in 3.7 hinzugefügt. Chrome ist in Ordnung. Internet Explorer hat nur in 10 Unterstützung hinzugefügt. Wenn Sie auf einen Browser abzielen, der keine Eingabeplatzhalter unterstützt, können Sie ein jQuery-Plugin namens jQuery HTML5 Placeholder verwenden und dann einfach den folgenden JavaScript-Code hinzufügen, um ihn zu aktivieren.
quelle
Dies wird als Textfeld-Wasserzeichen bezeichnet und erfolgt über JavaScript.
oder wenn Sie jQuery verwenden, ein viel besserer Ansatz:
quelle
Sie können den Platzhalter mithilfe des
placeholder
Attributs in HTML festlegen ( Browserunterstützung ). Dasfont-style
undcolor
kann mit CSS geändert werden (obwohl die Browserunterstützung begrenzt ist).quelle
Sie können eine spezielle CSS-Klasse hinzufügen und entfernen und den Eingabewert
onfocus
/onblur
mit JavaScript ändern :Geben Sie dann eine Hinweisklasse mit dem gewünschten Stil in Ihrem CSS an, zum Beispiel:
quelle
Der beste Weg ist, Ihre JavaScript-Ereignisse mit einer JavaScript-Bibliothek wie jQuery oder YUI zu verbinden und Ihren Code in eine externe .js-Datei zu legen.
Wenn Sie jedoch eine schnelle und schmutzige Lösung wünschen, ist dies Ihre Inline-HTML-Lösung:
Aktualisiert : Das angeforderte Farbmaterial wurde hinzugefügt.
quelle
Ich habe vor einiger Zeit eine Lösung dafür auf meiner Website veröffentlicht . Um es zu verwenden, importieren Sie eine einzelne
.js
Datei:Kommentieren Sie dann alle Eingaben, die Sie mit der CSS-Klasse versehen möchten
hintTextbox
:Weitere Informationen und Beispiele finden Sie hier .
quelle
Hier ist ein Funktionsbeispiel mit dem Google Ajax-Bibliothekscache und etwas jQuery-Magie.
Dies wäre das CSS:
Dies wäre der JavaScript-Code:
Und das wäre der HTML:
Ich hoffe, es reicht aus, um Sie sowohl für die GAJAXLibs als auch für jQuery zu interessieren.
quelle
Jetzt wird es sehr einfach. In HTML können wir das Platzhalterattribut für Eingabeelemente angeben.
z.B
Weitere Informationen finden Sie unter: http://www.w3schools.com/tags/att_input_placeholder.asp
quelle
Für jQuery-Benutzer: Der jQuery-Link von naspinski scheint defekt zu sein, aber versuchen Sie diesen: http://remysharp.com/2007/01/25/jquery-tutorial-text-box-hints/
Als Bonus erhalten Sie ein kostenloses Tutorial zum jQuery-Plugin. :) :)
quelle
Ich fand das jQuery-Plugin jQuery Watermark besser als das in der oberen Antwort aufgeführte. Warum besser? Weil es Passworteingabefelder unterstützt. Das Festlegen der Farbe des Wasserzeichens (oder anderer Attribute) ist so einfach wie das Erstellen einer
.watermark
Referenz in Ihrer CSS-Datei.quelle
Dies wird als "Wasserzeichen" bezeichnet.
Ich habe das jQuery-Plugin jQuery-Wasserzeichen gefunden, für das im Gegensatz zur ersten Antwort keine zusätzliche Einrichtung erforderlich ist (für die ursprüngliche Antwort ist auch ein spezieller Aufruf erforderlich, bevor das Formular gesendet wird).
quelle
Verwenden Sie jQuery Form Notifier - es ist eines der beliebtesten jQuery-Plugins und leidet nicht unter den Fehlern, die einige der anderen jQuery-Vorschläge hier aufweisen (z. B. können Sie das Wasserzeichen frei formatieren, ohne sich Sorgen machen zu müssen, ob es im gespeichert wird Datenbank).
jQuery Watermark verwendet einen einzelnen CSS-Stil direkt für die Formularelemente (ich habe festgestellt, dass die auf das Wasserzeichen angewendeten Eigenschaften der CSS-Schriftgröße auch die Textfelder beeinflussen - nicht das, was ich wollte). Das Plus bei jQuery Watermark ist, dass Sie Text per Drag & Drop in Felder ziehen können (jQuery Form Notifier erlaubt dies nicht).
Ein anderer, der von einigen anderen vorgeschlagen wurde (der auf digitalbrush.com), sendet versehentlich den Wasserzeichenwert an Ihr Formular, daher empfehle ich dringend davon ab.
quelle
Verwenden Sie ein Hintergrundbild, um den Text zu rendern:
Dann müssen Sie nur noch
value == 0
die richtige Klasse erkennen und anwenden:Und der jQuery-JavaScript-Code sieht folgendermaßen aus:
quelle
Sie könnten leicht ein Feld mit der Aufschrift "Suchen" haben, und wenn der Fokus darauf geändert wird, wird der Text entfernt. Etwas wie das:
<input onfocus="this.value=''" type="text" value="Search" />
Wenn Sie dies tun, verschwindet natürlich der eigene Text des Benutzers, wenn er darauf klickt. Sie möchten also wahrscheinlich etwas Robusteres verwenden:
quelle
Wenn die Seite zum ersten Mal geladen wird, wird im Textfeld die Suche angezeigt, die grau gefärbt ist, wenn Sie dies wünschen.
Wenn das Eingabefeld den Fokus erhält, wählen Sie den gesamten Text im Suchfeld aus, damit der Benutzer einfach mit der Eingabe beginnen kann, wodurch der ausgewählte Text gelöscht wird. Dies funktioniert auch gut, wenn der Benutzer das Suchfeld ein zweites Mal verwenden möchte, da er den vorherigen Text nicht manuell markieren muss, um ihn zu löschen.
quelle
Ich mag die Lösung von "Knowledge Chikuse" - einfach und klar. Sie müssen nur einen Aufruf zum Verwischen hinzufügen, wenn das Laden der Seite fertig ist, wodurch der Anfangszustand festgelegt wird:
quelle
Sie möchten onfocus so etwas zuweisen:
und dies zu verwischen:
(Sie können etwas Klügeres wie eine Framework-Funktion verwenden, um den Klassennamen zu wechseln, wenn Sie möchten.)
Mit einigen CSS wie diesem:
quelle
Ich verwende eine einfache einzeilige Javascript-Lösung, die hervorragend funktioniert. Hier ist ein Beispiel sowohl für Textbox als auch für Textbereich:
Der einzige "Nachteil" besteht darin, bei $ _POST oder in der Javascript-Validierung zu validieren, bevor etwas mit dem Wert des Feldes getan wird. Das heißt, Sie müssen überprüfen, ob der Feldwert nicht "Text" ist.
quelle
quelle
Ein einfaches HTML-Tag "erforderlich" ist nützlich.
Es gibt an, dass ein Eingabefeld ausgefüllt werden muss, bevor das Formular gesendet oder die Schaltfläche Senden gesendet wird. Hier ist ein Beispiel
quelle
Benutzer AJAXToolkit von http://asp.net
quelle