Gibt es eine schnelle Möglichkeit, ein Eingabetextelement mit einem Symbol auf der rechten Seite zu erstellen, um das Eingabeelement selbst zu löschen (wie das Google-Suchfeld)?
Ich habe mich umgesehen, aber nur herausgefunden, wie ein Symbol als Hintergrund für das Eingabeelement eingefügt werden kann. Gibt es ein jQuery-Plugin oder etwas anderes?
Ich möchte das Symbol im Eingabetextelement, etwa:
--------------------------------------------------
| X|
--------------------------------------------------
javascript
jquery
html
css
Giovanni Di Milia
quelle
quelle
Antworten:
Fügen Sie
type="search"
Ihrer Eingabe ein hinzu.Die Unterstützung ist recht anständig, funktioniert jedoch nicht in IE <10
Löschbare Eingabe für alte Browser
Wenn Sie IE9-Unterstützung benötigen, finden Sie hier einige Problemumgehungen
Verwenden eines Standards
<input type="text">
und einiger HTML-Elemente:Verwenden Sie nur ein
<input class="clearable" type="text">
(keine zusätzlichen Elemente)setze a
class="clearable"
und spiele mit dem Hintergrundbild:jsBin Demo
Der Trick besteht darin, eine richtige Polsterung (ich habe 18px verwendet) auf die zu setzen
input
und das Hintergrundbild nach rechts zu schieben, außer Sichtweite (ich habe verwendetright -10px center
).Diese 18-Pixel-Auffüllung verhindert, dass sich der Text unter dem Symbol versteckt (solange er sichtbar ist).
jQ fügt die Klasse
x
(falls vorhandeninput
) mit dem Löschsymbol hinzu .Jetzt müssen wir nur noch mit jQ auf die Eingaben mit class zielen
x
und erkennen,mousemove
ob sich die Maus in diesem 18px "x" -Bereich befindet. Wenn drinnen, füge die Klasse hinzuonX
.Durch Klicken auf die
onX
Klasse werden alle Klassen entfernt, der Eingabewert zurückgesetzt und das Symbol ausgeblendet.7x7px gif:
Base64-Zeichenfolge:
quelle
.on('touchstart click', '.onX', ...
,.on('touchstart click', '.onX, .x', ...
damit es unter iOS funktioniert.Könnte ich vorschlagen, wenn Sie damit einverstanden sind, dass dies auf HTML 5-kompatible Browser beschränkt ist, verwenden Sie einfach:
JS Fiddle Demo
Zugegebenermaßen erfordert dies in Chromium (Ubuntu 11.04), dass sich Text im
input
Element befindet, bevor das Klartextbild / die Klartextfunktionalität angezeigt wird.Referenz:
quelle
Sie können eine Reset-Taste verwenden, die mit einem Bild gestaltet ist ...
Sehen Sie es hier in Aktion: http://jsbin.com/uloli3/63
quelle
Ich habe ein löschbares Textfeld nur in CSS erstellt. Es ist kein Javascript-Code erforderlich, damit es funktioniert
Unten ist der Demo-Link
http://codepen.io/shidhincr/pen/ICLBD
quelle
Nach MDN ,
<input type="search" />
wird derzeit in allen modernen Browsern unterstützt:Wenn Sie jedoch ein anderes Verhalten wünschen, das für alle Browser konsistent ist, finden Sie hier einige leichte Alternativen, für die nur JavaScript erforderlich ist:
Option 1 - Immer das 'x' anzeigen: (Beispiel hier)
Option 2 - Zeigen Sie das 'x' nur an, wenn Sie mit der Maus über das Feld fahren: (Beispiel hier)
Option 3 - Zeigen Sie das 'x' nur an, wenn das
input
Element einen Wert hat: (Beispiel hier)quelle
Da keine der herumfliegenden Lösungen wirklich unseren Anforderungen entsprach, haben wir ein einfaches jQuery-Plugin namens jQuery-ClearSearch entwickelt -
Die Verwendung ist so einfach wie:
Beispiel: http://jsfiddle.net/wldaunfr/FERw3/
quelle
EDIT: Ich habe diesen Link gefunden. Ich hoffe es hilft. http://viralpatel.net/blogs/2011/02/clearable-textbox-jquery.html
Sie haben erwähnt, dass Sie es rechts vom Eingabetext möchten. Der beste Weg wäre also, ein Bild neben dem Eingabefeld zu erstellen. Wenn Sie etwas in der Box suchen, können Sie ein Hintergrundbild verwenden, aber möglicherweise kein Skript schreiben, um die Box zu löschen.
Fügen Sie also einen JavaScript-Code ein, schreiben Sie ein Bild und schreiben Sie es, um das Textfeld zu löschen.
quelle
<input type="text" name="Search" value="Search..." onclick="this.value='';">
Wenn Sie es wie Google möchten, sollten Sie wissen, dass sich das "X" nicht im Inneren befindet
<input>
- sie befinden sich nebeneinander, wobei der äußere Container so gestaltet ist, dass er wie das Textfeld aussieht.HTML:
CSS:
Beispiel: http://jsfiddle.net/VTvNX/
quelle
Etwas wie das??
Jsfiddle Demo
quelle
quelle
Sie können mit diesen Befehlen (ohne Bootstrap) tun.
quelle
Hier ist ein jQuery-Plugin (und eine Demo am Ende).
http://jsfiddle.net/e4qhW/3/
Ich habe es hauptsächlich getan, um ein Beispiel (und eine persönliche Herausforderung) zu veranschaulichen. Obwohl positive Stimmen willkommen sind, werden die anderen Antworten rechtzeitig verteilt und verdienen ihre gebührende Anerkennung.
Meiner Meinung nach ist es jedoch ein überentwickeltes Aufblähen (es sei denn, es ist Teil einer UI-Bibliothek).
quelle
x
Ich habe eine einfache Komponente mit jQuery und Bootstrap geschrieben. Probieren Sie es aus: https://github.com/mahpour/bootstrap-input-clear-button
quelle
Mit einem jquery-Plugin habe ich es an meine Bedürfnisse angepasst, indem ich angepasste Optionen hinzugefügt und ein neues Plugin erstellt habe. Sie finden es hier: https://github.com/david-dlc-cerezo/jquery-clearField
Ein Beispiel für eine einfache Verwendung:
So etwas erhalten:
quelle
In jQuery Mobile ist jetzt Folgendes integriert:
Jquery Mobile API TextInput-Dokumente
quelle
Keine Notwendigkeit, CSS oder Bilddateien einzuschließen. Es ist nicht erforderlich, die gesamte jQuery-UI-Bibliothek für schwere Artillerie einzuschließen. Ich habe ein leichtes jQuery-Plugin geschrieben, das die Magie für Sie erledigt. Alles was Sie brauchen ist
jQuery
und das Plugin . =)Geige hier: jQuery InputSearch-Demo .
quelle