@thebluefox hat am allermeisten zusammengefasst. Sie müssen nur JavaScript verwenden, damit diese Schaltfläche trotzdem funktioniert. Hier ist eine SSCCE, die Sie kopieren und einfügen und ausführen können:
<!DOCTYPE html>
<html lang="en">
<head>
<title>SO question 2803532</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function() {
$('input.deletable').wrap('<span class="deleteicon" />').after($('<span/>').click(function() {
$(this).prev('input').val('').trigger('change').focus();
}));
});
</script>
<style>
span.deleteicon {
position: relative;
}
span.deleteicon span {
position: absolute;
display: block;
top: 5px;
right: 0px;
width: 16px;
height: 16px;
background: url('http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=4') 0 -690px;
cursor: pointer;
}
span.deleteicon input {
padding-right: 16px;
box-sizing: border-box;
}
</style>
</head>
<body>
<input type="text" class="deletable">
</body>
</html>
Live Beispiel hier .
jQuery ist übrigens nicht notwendig, es trennt nur die Logik, die für die progressive Verbesserung benötigt wird, von der Quelle. Sie können natürlich auch mit einfachem HTML / CSS / JS fortfahren:
<!DOCTYPE html>
<html lang="en">
<head>
<title>SO question 2803532, with "plain" HTML/CSS/JS</title>
<style>
span.deleteicon {
position: relative;
}
span.deleteicon span {
position: absolute;
display: block;
top: 5px;
right: 0px;
width: 16px;
height: 16px;
background: url('http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=4') 0 -690px;
cursor: pointer;
}
span.deleteicon input {
padding-right: 16px;
box-sizing: border-box;
}
</style>
</head>
<body>
<span class="deleteicon">
<input type="text">
<span onclick="var input = this.previousSibling; input.value = ''; input.focus();"></span>
</span>
</body>
</html>
Sie erhalten nur hässlicheres HTML (und nicht Crossbrowser-kompatibles JS;)).
Beachten Sie, dass, wenn das Aussehen und Verhalten der Benutzeroberfläche nicht Ihr größtes Anliegen ist, sondern die Funktionalität, dann verwenden Sie einfach <input type="search">
statt <input type="text">
. In HTML5-fähigen Browsern wird die (browserspezifische) Schaltfläche zum Löschen angezeigt.
class="fa fa-remove"
auf der inneren Spanne verwenden, um ein schönes Kreuz Symboltop:
die untergeordnete Spanne entfernt unddisplay: flex; align-items: center;
die übergeordnete Spanne eingestellt habe.Heutzutage ist es mit HTML5 ziemlich einfach:
Die meisten modernen Browser rendern standardmäßig automatisch eine verwendbare Schaltfläche zum Löschen im Feld.
(Wenn Sie Bootstrap verwenden, müssen Sie Ihrer CSS-Datei eine Überschreibung hinzufügen, damit sie angezeigt wird.)
Safari / WebKit-Browser können bei der Verwendung von
type="search"
wieresults=5
und zusätzliche Funktionen bereitstellenautosave="..."
, sie überschreiben jedoch auch viele Ihrer Stile (z. B. Höhe, Rahmen). Um diese Überschreibungen zu verhindern und gleichzeitig Funktionen wie die X-Schaltfläche beizubehalten, können Sie diese zu Ihrem CSS hinzufügen:Weitere Informationen zu den von bereitgestellten Funktionen finden Sie unter css-tricks.com
type="search"
.quelle
HTML5 führt den Eingabetyp "Suche" ein, von dem ich glaube, dass er das tut, was Sie wollen.
<input type="search" />
Hier ist ein Live-Beispiel .
quelle
Schauen Sie sich unser jQuery-ClearSearch- Plugin an. Es ist ein konfigurierbares jQuery-Plugin - die Anpassung an Ihre Bedürfnisse durch Gestaltung des Eingabefelds ist unkompliziert. Verwenden Sie es einfach wie folgt:
Beispiel: http://jsfiddle.net/wldaunfr/FERw3/
quelle
Sie können es leider nicht in das Textfeld einfügen, sondern nur so aussehen lassen, dass es darin enthalten ist, was leider bedeutet, dass etwas CSS benötigt wird: P.
Die Theorie besteht darin, die Eingabe in ein Div zu packen, alle Ränder und Hintergründe von der Eingabe zu entfernen und das Div so zu gestalten, dass es wie die Box aussieht. Dann lassen Sie Ihre Schaltfläche nach dem Eingabefeld im Code und den Jobs ein gutes Stück fallen.
Sobald du es trotzdem zum Laufen gebracht hast;)
quelle
Ich habe eine kreative Lösung, nach der Sie suchen
https://jsfiddle.net/qdesign/xn9eogmx/1/
quelle
Der beste Ansatz ist natürlich, die immer stärker unterstützten zu verwenden
<input type="search" />
.Wie auch immer, für ein bisschen Spaß beim Codieren dachte ich, dass dies auch mit der Reset-Schaltfläche des Formulars erreicht werden könnte, und dies ist das Arbeitsergebnis (es lohnt sich, Notizen zu machen, die keine anderen Eingaben leben können, aber das Suchfeld mit diesem Ansatz, oder die Reset-Schaltfläche wird gelöscht sie auch), kein Javascript benötigt:
quelle
Vielleicht kann diese einfache Lösung helfen:
quelle
@ Mahmoud Ali Kaseem
Ich habe gerade etwas CSS geändert, damit es anders aussieht, und habe focus () hinzugefügt.
https://jsfiddle.net/xn9eogmx/81/
quelle