Tambahkan type="search"input Anda
. Dukungan ini cukup baik tetapi tidak akan berfungsi di IE <10
Input yang dapat dihapus untuk browser lama
Jika Anda memerlukan dukungan IE9 di sini ada beberapa solusi
Menggunakan standar <input type="text">dan beberapa elemen HTML:
/**
* Clearable text inputs
*/
$(".clearable").each(function() {
var $inp = $(this).find("input:text"),
$cle = $(this).find(".clearable__clear");
$inp.on("input", function(){
$cle.toggle(!!this.value);
});
$cle.on("touchstart click", function(e) {
e.preventDefault();
$inp.val("").trigger("input");
});
});
/* Clearable text inputs */
.clearable{
position: relative;
display: inline-block;
}
.clearable input[type=text]{
padding-right: 24px;
width: 100%;
box-sizing: border-box;
}
.clearable__clear{
display: none;
position: absolute;
right:0; top:0;
padding: 0 8px;
font-style: normal;
font-size: 1.2em;
user-select: none;
cursor: pointer;
}
.clearable input::-ms-clear { /* Remove IE default X */
display: none;
}
<span class="clearable">
<input type="text" name="" value="" placeholder="">
<i class="clearable__clear">×</i>
</span>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Hanya menggunakan a <input class="clearable" type="text">(Tidak ada elemen tambahan)

atur class="clearable"dan mainkan dengan gambar latar belakangnya:
/**
* Clearable text inputs
*/
function tog(v){return v?'addClass':'removeClass';}
$(document).on('input', '.clearable', function(){
$(this)[tog(this.value)]('x');
}).on('mousemove', '.x', function( e ){
$(this)[tog(this.offsetWidth-18 < e.clientX-this.getBoundingClientRect().left)]('onX');
}).on('touchstart click', '.onX', function( ev ){
ev.preventDefault();
$(this).removeClass('x onX').val('').change();
});
// $('.clearable').trigger("input");
// Uncomment the line above if you pre-fill values from LS or server
/* Clearable text inputs */
.clearable{
background: #fff url(http://i.stack.imgur.com/mJotv.gif) no-repeat right -10px center;
border: 1px solid #999;
padding: 3px 18px 3px 4px; /* Use the same right padding (18) in jQ! */
border-radius: 3px;
transition: background 0.4s;
}
.clearable.x { background-position: right 5px center; } /* (jQ) Show icon */
.clearable.onX{ cursor: pointer; } /* (jQ) hover cursor style */
.clearable::-ms-clear {display: none; width:0; height:0;} /* Remove IE default X */
<input class="clearable" type="text" name="" value="" placeholder="" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Demo jsBin
Caranya adalah dengan mengatur beberapa padding kanan (saya menggunakan 18px) ke inputdan mendorong gambar latar kanan, keluar dari pandangan (saya menggunakan right -10px center).
Padding 18px itu akan mencegah teks bersembunyi di bawah ikon (saat terlihat).
jQ akan menambahkan kelas x(jika inputmemiliki nilai) yang menunjukkan ikon yang jelas.
Sekarang yang kita butuhkan adalah menargetkan dengan jQ input dengan kelas xdan mendeteksi mousemoveapakah mouse ada di dalam area 18px "x"; jika di dalam, tambahkan kelas onX.
Mengklik onXkelas menghapus semua kelas, mengatur ulang nilai input dan menyembunyikan ikon.
7x7px gif: 
String Base64:
data:image/gif;base64,R0lGODlhBwAHAIAAAP///5KSkiH5BAAAAAAALAAAAAAHAAcAAAIMTICmsGrIXnLxuDMLADs=