Hapus tombol X “bidang kosong” IE10 pada input tertentu?


742

Ini adalah fitur yang bermanfaat, tentu saja, tetapi apakah ada cara untuk menonaktifkannya?
Misalnya, jika formulir adalah bidang teks tunggal dan sudah memiliki tombol "jelas" di sampingnya, terlalu berlebihan untuk memiliki X. Dalam situasi ini, akan lebih baik untuk menghapusnya.

Bisakah itu dilakukan, dan jika demikian, bagaimana?


1
Ini juga berguna pada bidang dengan nilai default di mana kosong tidak masuk akal, misalnya kuantitas.
Joe Flynn

4
karena ini tidak memicu input pengetikan, ini sangat sulit ketika Anda mengikat acara javascript.
Kiwy

Jawaban:


1267

Gaya ::-ms-clearelemen pseudo- untuk kotak:

.someinput::-ms-clear {
    display: none;
}

14
Ini lucu jika Anda menggunakan mode kompatibilitas IE untuk membuat halaman Anda dengan mesin sebelum IE10, elemen pseudo ini tidak berfungsi dan itu tetap menunjukkan tombol.
Yousef Salimpour

@Yousef: Ya, begitulah cara kerjanya dan bagian dari alasan mengapa Anda tidak boleh menggunakan Mode Kompatibilitas di situs web yang sebenarnya. Ini sebenarnya tidak kompatibel :)
Ry-

@minitech - IE9 pada mesin Windows 7
ManJan

3
Kontrol ini HANYA muncul di IE10 + pada Win8. Kuncinya adalah bahwa itu masih muncul ketika dokumen dimasukkan ke dalam mode kompatibilitas.
EricLaw

48
@ EricLaw: Ya, TIDAK HANYA di Win8. Saya menggunakan Windows 7 sekarang dan saya bisa melihat tombol-tombol X di IE10 saya. Jadi Anda mungkin mengatakan itu adalah fitur hanya IE10 + (meskipun tidak yakin tentang IE9), tapi pasti BUKAN Win8 saja, karena ini muncul dalam versi Win7 dari IE10. Bagaimanapun, terima kasih atas tipnya, @minitech!
OMA

272

Saya menemukan lebih baik untuk mengatur widthdan heightuntuk 0px. Jika tidak, IE10 mengabaikan padding yang didefinisikan pada bidang - padding-right- yang dimaksudkan untuk menjaga teks agar tidak mengetik di atas ikon 'X' yang saya overlay pada bidang input. Saya menduga bahwa IE10 secara internal menerapkan padding-rightinput ke ::--ms-clearelemen pseudo, dan menyembunyikan elemen pseudo tidak mengembalikan padding-rightnilai ke input.

Ini bekerja lebih baik untuk saya:

.someinput::-ms-clear {
  width : 0;
  height: 0;
}

3
Berikut adalah jsFiddle yang menggambarkan solusi ini: jsfiddle.net/zoldello/S5YRj
Phil

106

Saya akan menerapkan aturan ini untuk semua bidang input tipe teks, sehingga tidak perlu diduplikasi nanti:

input[type=text]::-ms-clear { display: none; }

Seseorang bahkan dapat kurang spesifik dengan hanya menggunakan:

::-ms-clear { display: none; }

Saya telah menggunakan yang belakangan bahkan sebelum menambahkan jawaban ini, tetapi berpikir bahwa kebanyakan orang lebih suka lebih spesifik daripada itu. Kedua solusi bekerja dengan baik.


Terima kasih, itu berhasil untuk saya.
Sooraj Jose

76

Anda harus menata untuk ::-ms-clear( http://msdn.microsoft.com/en-us/library/windows/apps/hh465740.aspx ):

::-ms-clear {
   display: none;
}

Dan Anda juga gaya untuk ::-ms-revealelemen semu untuk bidang kata sandi:

::-ms-reveal {
   display: none;
}

6
Catatan - pikirkan apakah Anda dapat membuatnya ::-ms-reveal elemen berfungsi sebelum menghapusnya! (Atau jika Anda memberikan tombol ini untuk semua orang, seperti penanya yang asli.) Beberapa benar-benar menggunakannya.
Ry-

3
@ minitech - kedengarannya bagus. Bisakah Anda memberi tahu kami cara membuatnya bekerja dengan pengikatan Javascript pada acara masukan? Itu tidak mengangkat suatu acara sehingga hampir mustahil untuk bekerja dengannya.
DarrellNorton

11

Saya pikir perlu dicatat bahwa semua solusi berbasis gaya dan CSS tidak berfungsi ketika halaman berjalan dalam mode kompatibilitas. Renderer mode kompatibilitas mengabaikan elemen :: - ms-clear, meskipun browser menunjukkan x.

Jika halaman Anda perlu dijalankan dalam mode kompatibilitas, Anda mungkin terjebak dengan X menunjukkan.

Dalam kasus saya, saya bekerja dengan beberapa kontrol data terikat pihak ketiga, dan solusi kami adalah untuk menangani acara "onchange" dan menghapus toko dukungan jika bidang dibersihkan dengan tombol x.


0

Untuk menyembunyikan panah dan memotong input "waktu":

#inputId::-webkit-outer-spin-button,
#inputId::-webkit-inner-spin-button,
#inputId::-webkit-clear-button{
    -webkit-appearance: none;
    margin: 0;
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.