@thebluefox a résumé le plus de tous. Vous n'êtes également obligé d'utiliser JavaScript que pour que ce bouton fonctionne de toute façon. Voici un SSCCE, vous pouvez le copier et le coller:
<!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>
Exemple en direct ici .
jQuery n'est d'ailleurs pas nécessaire, il sépare juste bien la logique nécessaire à l'amélioration progressive de la source, vous pouvez bien sûr également aller de l'avant avec du HTML / CSS / JS:
<!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>
Vous vous retrouvez seulement avec du HTML plus laid (et JS non compatible avec les navigateurs;)).
Notez que lorsque le look'n'feel de l'interface utilisateur n'est pas votre principale préoccupation, mais que la fonctionnalité l'est, utilisez simplement à la <input type="search">
place de <input type="text">
. Il affichera le bouton Effacer (spécifique au navigateur) sur les navigateurs compatibles HTML5.
class="fa fa-remove"
sur la plage intérieure pour afficher une belle icône de croixtop:
la plage enfant et en la définissantdisplay: flex; align-items: center;
dans la plage parent.De nos jours, avec HTML5, c'est assez simple:
La plupart des navigateurs modernes afficheront automatiquement un bouton d'effacement utilisable dans le champ par défaut.
(Si vous utilisez Bootstrap, vous devrez ajouter un remplacement à votre fichier css pour le faire apparaître)
Les navigateurs Safari / WebKit peuvent également fournir des fonctionnalités supplémentaires lors de l'utilisation
type="search"
, commeresults=5
etautosave="..."
, mais ils remplacent également plusieurs de vos styles (par exemple, la hauteur, les bordures). Pour éviter ces remplacements, tout en conservant des fonctionnalités telles que le bouton X, vous pouvez ajouter ceci à votre css:Voir css-tricks.com pour plus d'informations sur les fonctionnalités fournies par
type="search"
.la source
HTML5 introduit le type d'entrée «recherche» qui, selon moi, fait ce que vous voulez.
<input type="search" />
Voici un exemple en direct .
la source
Découvrez notre plugin jQuery-ClearSearch . C'est un plugin jQuery configurable - l'adapter à vos besoins en stylisant le champ de saisie est simple. Utilisez-le simplement comme suit:
Exemple: http://jsfiddle.net/wldaunfr/FERw3/
la source
Vous ne pouvez malheureusement pas le mettre à l'intérieur de la zone de texte, mais seulement le faire ressembler à son intérieur, ce qui signifie malheureusement qu'un certain css est nécessaire: P
La théorie consiste à envelopper l'entrée dans un div, à retirer toutes les bordures et tous les arrière-plans de l'entrée, puis à styliser le div pour qu'il ressemble à la boîte. Ensuite, déposez votre bouton après la zone de saisie dans le code et les jobs a good'un.
Une fois que vous l'avez fait fonctionner de toute façon;)
la source
J'ai une solution créative que je pense que vous recherchez
https://jsfiddle.net/qdesign/xn9eogmx/1/
la source
Bien sûr, la meilleure approche est d'utiliser le toujours plus pris en charge
<input type="search" />
.Quoi qu'il en soit, pour un peu de plaisir de codage, je pensais que cela pourrait être réalisé également en utilisant le bouton de réinitialisation du formulaire, et c'est le résultat de travail (cela vaut la peine de noter qui ne peut pas vivre d'autres entrées mais le champ de recherche avec cette approche, ou le bouton de réinitialisation effacera eux aussi), aucun javascript nécessaire:
la source
Peut-être que cette solution simple peut vous aider:
la source
@Mahmoud Ali Kaseem
Je viens de changer quelques CSS pour le rendre différent et j'ai ajouté focus ();
https://jsfiddle.net/xn9eogmx/81/
la source