@thebluefox resumiu o máximo de tudo. Você também é obrigado a usar o JavaScript para fazer com que esse botão funcione de qualquer maneira. Aqui está um SSCCE, você pode copiá-lo e colar:
<!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>
Exemplo ao vivo aqui .
jQuery não é necessário, apenas separa bem a lógica necessária para aprimoramento progressivo da fonte, é claro que você também pode prosseguir com HTML / CSS / JS simples :
<!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>
Você acaba com HTML mais feio (e JS não compatível com o navegador cruzado).
Observe que quando a aparência da interface do usuário não é sua maior preocupação, mas a funcionalidade é, basta usar em <input type="search">
vez de <input type="text">
. Ele mostrará o botão claro (específico do navegador) nos navegadores compatíveis com HTML5.
class="fa fa-remove"
o espaço interior para exibir um ícone de cruz agradáveltop:
no período filho e definindodisplay: flex; align-items: center;
no período pai.Atualmente, com o HTML5, é bem simples:
A maioria dos navegadores modernos renderiza automaticamente um botão Limpar utilizável no campo por padrão.
(Se você usa o Bootstrap, terá que adicionar uma substituição ao seu arquivo css para mostrar)
Os navegadores Safari / WebKit também podem fornecer recursos extras ao usar
type="search"
, comoresults=5
eautosave="..."
, mas também substituem muitos de seus estilos (por exemplo, altura, bordas). Para impedir essas substituições, mantendo a funcionalidade como o botão X, você pode adicionar isso ao seu css:Consulte css-tricks.com para obter mais informações sobre os recursos fornecidos por
type="search"
.fonte
O HTML5 apresenta o tipo de entrada 'search' que acredito que faz o que você deseja.
<input type="search" />
Aqui está um exemplo ao vivo .
fonte
Confira nosso plugin jQuery-ClearSearch . É um plugin jQuery configurável - é fácil adaptá-lo às suas necessidades, estilizando o campo de entrada. Basta usá-lo da seguinte maneira:
Exemplo: http://jsfiddle.net/wldaunfr/FERw3/
fonte
Infelizmente, você não pode colocá-lo dentro da caixa de texto, apenas fazer parecer que está dentro dela, o que infelizmente significa que é necessário algum css: P
A teoria é agrupar a entrada em uma div, remover todas as bordas e fundos da entrada e estilizar a div para parecer com a caixa. Em seguida, solte seu botão após a caixa de entrada no código e os trabalhos serão executados.
Depois que você tiver que trabalhar de qualquer maneira;)
fonte
Eu tenho uma solução criativa que acho que você está procurando
https://jsfiddle.net/qdesign/xn9eogmx/1/
fonte
Obviamente, a melhor abordagem é usar o recurso cada vez mais suportado
<input type="search" />
.De qualquer forma, para me divertir um pouco com a codificação, pensei que isso poderia ser alcançado também usando o botão de redefinição do formulário, e este é o resultado do trabalho (vale a pena notar que não pode viver outras entradas, mas o campo de pesquisa com essa abordagem ou o botão de redefinição será apagado também), não é necessário javascript:
fonte
Talvez esta solução simples possa ajudar:
fonte
@Mahmoud Ali Kaseem
Acabei de alterar algumas CSS para torná-las diferentes e adicionar foco ();
https://jsfiddle.net/xn9eogmx/81/
fonte