<select size="2">
<option selected="selected">Input your option</option>
<option>Input your option</option>
</select>
Apa cara terbaik, menggunakan jQuery, untuk secara elegan membatalkan pilihan?
Gunakan removeAttr ...
$("option:selected").removeAttr("selected");
Atau Prop
$("option:selected").prop("selected", false)
.val([])
atau.prop("selected", false)
- gulir ke bawah.$("option:selected").prop("selected", false)
terkadang tidak bekerja. (tidak bekerja di browser chrome dengan jquery v1.4.2)Ada banyak jawaban di sini, tetapi sayangnya semuanya sudah cukup tua dan oleh karena itu bergantung pada
attr
/removeAttr
yang sebenarnya bukan cara untuk pergi.@coffeeyesplease dengan benar menyebutkan bahwa solusi lintas-browser yang baik harus digunakan
Solusi lintas-browser yang bagus adalah
Anda dapat melihatnya menjalankan swa-uji di sini . Diuji pada IE 7/8/9, FF 11, Chrome 19.
sumber
Array.indexOf
perlu polyfill untuk IE <9 (atau Anda dapat menggunakan metode setara yang disediakan banyak perpustakaan JS).$('#select').val([]);
? Sayangnya, ini tidak menghapusselected="selected"
atribut. Itu mungkin akhirnya memposting data yang salah. Saya tidak merekomendasikan pendekatan ini!Sudah lama sejak ditanya, dan saya belum menguji ini di browser yang lebih tua tetapi menurut saya jawaban yang jauh lebih sederhana adalah
.val () berfungsi untuk pilih juga http://api.jquery.com/val/
sumber
$("select option").prop("selected", false);
bekerja secara universal (pada pilihan multi dan tunggal).Metode paling sederhana
$('select').val('')
Saya hanya menggunakan ini pada pilih sendiri dan itu berhasil.
Saya ada di jQuery 1.7.1 .
sumber
Jawaban sejauh ini hanya berfungsi untuk beberapa pilihan di IE6 / 7; untuk non-multi pilih yang lebih umum, Anda perlu menggunakan:
Ini dijelaskan dalam pos yang ditautkan oleh flyfishr64. Jika Anda melihatnya, Anda akan melihat bagaimana ada 2 kasus - multi / non-multi. Tidak ada yang menghentikan Anda untuk mendapatkan solusi lengkap:
sumber
Oh jquery.
Karena belum ada pendekatan javascript asli, saya merasa perlu menyediakannya.
Dan hanya untuk menunjukkan seberapa cepat ini: benchmark
sumber
Ini akan beralih melalui setiap item dan batalkan pilihan hanya yang diperiksa
sumber
Google cepat menemukan posting ini yang menjelaskan cara melakukan apa yang Anda inginkan untuk daftar pilih tunggal dan banyak di IE. Solusinya juga tampak cukup elegan:
sumber
sumber
sumber
Terima kasih banyak atas solusinya.
Solusi untuk daftar kombo pilihan tunggal bekerja dengan sempurna. Saya menemukan ini setelah mencari di banyak situs.
sumber
sumber
Cara sederhana lain:
$("#selectedID")[0].selectedIndex = -1
sumber
Biasanya ketika saya menggunakan menu pilih, setiap opsi memiliki nilai yang terkait dengannya. Sebagai contoh
Sekarang ini tidak menghapus atribut yang dipilih dari opsi tetapi yang saya inginkan hanyalah nilainya.
sumber
Tetapkan id di pilih Anda, seperti:
<select id="foo" size="2">
Maka Anda dapat menggunakan:
$("#foo").prop("selectedIndex", 0).change();
sumber