Harus dicatat bahwa ini lebih mudah dilakukan dengan $ ("# target") [0] .selectedIndex = 0;
David Andres
17
Ini berfungsi, tetapi didasarkan pada nilai elemen 1 , jika elemen 1 berisi nilai kosong, itu akan memilih elemen terdekat DENGAN nilai
evilReiko
2
Tampaknya bekerja dengan baik, kecuali untuk IE6. Tidak yakin 7-8, bekerja pada 9.
Nicholi
3
Saya menyangkal pernyataan saya sebelumnya, maju sendiri. $ ("# target"). val ("option: first"); bekerja paling banyak di mana-mana kecuali IE6 $ ("target"). akan bekerja di IE6, karena Anda benar-benar mencari nilai pertama, dan memasukkannya sebagai nilai target. Dua pencarian id, bukan satu.
Nicholi
2
Dan itu sebenarnya diperlukan untuk IE6, 7, dan 8. Sedangkan .val ('option: first') berfungsi di IE9 (dan Safari dan Firefox dan Chrome dan Opera).
Ini tidak berfungsi dengan baik dalam semua kasus. Saya memiliki drop down orangtua / anak cascading. Pilih induk # 1, tampilan anak # 1, pilih orangtua # 2 tampilan anak # 2. Setiap kali mereka memilih induk baru, itu harus mengatur anak yang sesuai kembali ke opsi pertama. Solusi ini tidak melakukan ini. Meninggalkan menu anak "lengket". Lihat opsi: terpilih.prop ('terpilih', salah) / opsi: first.prop ('terpilih', 'terpilih') solusi pada pertanyaan ini untuk jawaban yang bekerja di lebih banyak skenario.
Lance Cleveland
ini tidak memicu acara Ubah. Setidaknya dalam chrome.
Tomasz Mularczyk
Terima kasih! Ini adalah jawaban pertama dalam daftar jawaban yang cocok untuk saya.
@Romesh bagaimana saya bisa menetapkan nilai berdasarkanIndex yang dipilih?
Junior Frogie
111
// remove "selected" from any options that might already be selected
$('#target option[selected="selected"]').each(function(){
$(this).removeAttr('selected');});// mark the first option as selected
$("#target option:first").attr('selected','selected');
Pendekatan kedua yang bagus. Harap tambahkan nilai atribut yang dipilih. Misalnya, attr ("terpilih", "terpilih"). Tanpa parameter tambahan ini, pemilihan tidak dilakukan.
David Andres
@EgorPavlikhin - Saya baru saja mengedit jawaban untuk menyertakan kode JQuery untuk menghapus bendera "terpilih" dari semua opsi yang mungkin sudah dipilih. Sekarang jawabannya sudah benar :)
jmort253
20
Tidak perlu eachfungsi, harus: $('#target option[selected="selected"]').removeAttr('selected')juga sekarang harus digunakan dengan removePropdan propsebagai gantinya.
vsync
Versi yang lebih menyeluruh dari jawaban James Lee Baker di tempat lain pada pertanyaan ini, meskipun menambahkan siklus komputasi yang mungkin tidak diperlukan jika antarmuka dikelola dengan baik.
Anda juga perlu "batalkan pilihan" elemen yang dipilih sebelumnya agar ini berfungsi dalam lebih banyak kasus. Lihat jawaban dari James Lee Baker untuk detailnya.
Lance Cleveland
44
Mengubah nilai input yang dipilih atau menyesuaikan atribut yang dipilih dapat menimpa propertiOpsi yang dipilih secara default dari elemen DOM, menghasilkan elemen yang mungkin tidak me-reset dengan benar dalam bentuk yang memiliki event reset yang dipanggil.
Gunakan metode prop jQuery untuk menghapus dan mengatur opsi yang diperlukan:
Sempurna. Saya memiliki menu drop down cascading. Ketika seorang pengguna memilih opsi orang tua 2 maka opsi anak 3 saya tidak ingin itu "tetap". Dengan kata lain, pengguna kemudian memilih induk # 1, lalu memilih kembali induk # 2. Ketika itu terjadi, saya ingin menu anak untuk mengatur ulang ke opsi pertama (yaitu "Apa" dalam kasus saya). Semua solusi lain di sini gagal pada Firefox v19 dan Chrome di Linux.
Ini tidak akan berfungsi dalam kasus di mana drop-down memiliki item yang dipilih sebelumnya. Lihat komentar saya pada jawaban yang dipilih untuk detailnya.
Lance Cleveland
21
Satu titik halus yang saya pikir telah saya temukan tentang jawaban pilihan teratas adalah bahwa meskipun mereka benar mengubah nilai yang dipilih, mereka tidak memperbarui elemen yang dilihat pengguna (hanya ketika mereka mengklik widget mereka akan melihat cek di sebelah elemen yang diperbarui).
Memanggil panggilan .change () hingga akhir juga akan memperbarui widget UI.
Memanggil panggilan .change () hingga akhir juga akan memperbarui widget UI.
codemirror
17
Jika Anda memiliki opsi yang dinonaktifkan, Anda dapat menambahkan tidak ([dinonaktifkan]) untuk mencegah memilihnya yang menghasilkan hal-hal berikut:
Poin bagus tentang opsi yang dinonaktifkan. Tambahan yang bagus untuk jawaban yang disajikan!
Lance Cleveland
16
Cara lain untuk mereset nilai (untuk beberapa elemen yang dipilih) dapat berupa ini:
$("selector").each(function(){/*Perform any check and validation if needed for each item *//*Use "this" to handle the element in javascript or "$(this)" to handle the element with jquery */this.selectedIndex=0;});
Memberi +1 sebenarnya jawaban yang bagus, tetapi Anda bisa membuatnya lebih spesifik untuk domain pertanyaan; alih-alih $("selector")Anda bisa saja menulis$('#target')
Ini hanya berfungsi jika tidak ada opsi yang dipilih. Lihat jawaban James Lee Baker.
Webar
6
Saya telah menemukan bahwa hanya pengaturan attr yang dipilih tidak berfungsi jika sudah ada atribut yang dipilih. Kode yang saya gunakan sekarang pertama-tama akan menghapus atribut yang dipilih, lalu pilih opsi pertama.
Ini bekerja dengan baik dan sangat mirip dengan jawaban oleh James Lee Baker yang dicatat di tempat lain pada pertanyaan ini. Saya suka jawaban lain dengan opsi: terpilih dan opsi: pertama sebagai eksekusi opsi: pertama cenderung lebih cepat (berdasarkan perhitungan) daripada find ().
Lance Cleveland
5
Meskipun masing-masing fungsi mungkin tidak diperlukan ...
Ini bekerja dengan baik dan sangat mirip dengan jawaban oleh James Lee Baker yang dicatat di tempat lain pada pertanyaan ini. Saya suka jawaban lain dengan opsi: terpilih dan opsi: pertama sebagai eksekusi opsi: pertama cenderung lebih cepat (berdasarkan perhitungan) daripada find ().
Lance Cleveland
2
Itu hanya berfungsi untuk saya menggunakan pemicu ('perubahan') pada akhirnya, seperti ini:
Di belakang balasan James Lee Baker, saya lebih suka solusi ini karena menghilangkan ketergantungan pada dukungan browser untuk: pertama: yang dipilih ...
Bagi saya itu hanya berfungsi ketika saya menambahkan kode berikut:
.change();
Bagi saya itu hanya berfungsi ketika saya menambahkan kode berikut: Karena saya ingin "mengatur ulang" formulir, yaitu, pilih semua opsi pertama dari semua pilihan formulir, saya menggunakan kode berikut:
Bagaimana dengan posisi 15, 25, atau dengan teks tertentu? : D
Marcelo Agimóvel
Memanggil .val()hanya mendapatkan nilai opsi pertama dalam daftar. Sebenarnya tidak memilih (memilih) pilihan pertama, seperti yang ditanyakan dalam pertanyaan awal.
Funka
1
Bagi saya, itu hanya berfungsi ketika saya menambahkan baris kode berikut
Anda bisa mencoba ini
sumber
$("#target").prop("selectedIndex", 0).change();
sumber
each
fungsi, harus:$('#target option[selected="selected"]').removeAttr('selected')
juga sekarang harus digunakan denganremoveProp
danprop
sebagai gantinya.Saat Anda menggunakan
ini tidak akan berfungsi di Chrome dan Safari jika nilai opsi pertama adalah nol.
saya lebih memilih
karena bisa bekerja di semua browser.
sumber
Mengubah nilai input yang dipilih atau menyesuaikan atribut yang dipilih dapat menimpa propertiOpsi yang dipilih secara default dari elemen DOM, menghasilkan elemen yang mungkin tidak me-reset dengan benar dalam bentuk yang memiliki event reset yang dipanggil.
Gunakan metode prop jQuery untuk menghapus dan mengatur opsi yang diperlukan:
sumber
sumber
Satu titik halus yang saya pikir telah saya temukan tentang jawaban pilihan teratas adalah bahwa meskipun mereka benar mengubah nilai yang dipilih, mereka tidak memperbarui elemen yang dilihat pengguna (hanya ketika mereka mengklik widget mereka akan melihat cek di sebelah elemen yang diperbarui).
Memanggil panggilan .change () hingga akhir juga akan memperbarui widget UI.
(Perhatikan bahwa saya perhatikan ini saat menggunakan jQuery Mobile dan sebuah kotak di desktop Chrome, jadi ini mungkin tidak terjadi di mana-mana).
sumber
Jika Anda memiliki opsi yang dinonaktifkan, Anda dapat menambahkan tidak ([dinonaktifkan]) untuk mencegah memilihnya yang menghasilkan hal-hal berikut:
sumber
Cara lain untuk mereset nilai (untuk beberapa elemen yang dipilih) dapat berupa ini:
sumber
$("selector")
Anda bisa saja menulis$('#target')
Sederhana seperti itu:
sumber
sumber
Saya telah menemukan bahwa hanya pengaturan attr yang dipilih tidak berfungsi jika sudah ada atribut yang dipilih. Kode yang saya gunakan sekarang pertama-tama akan menghapus atribut yang dipilih, lalu pilih opsi pertama.
sumber
Meskipun masing-masing fungsi mungkin tidak diperlukan ...
bekerja untukku.
sumber
Inilah cara saya akan melakukannya:
sumber
Itu hanya berfungsi untuk saya menggunakan pemicu ('perubahan') pada akhirnya, seperti ini:
sumber
Jika Anda akan menggunakan opsi pertama sebagai suka standar
maka Anda bisa menggunakan:
Itu bagus dan sederhana.
sumber
Ini berhasil untuk saya!
sumber
Di belakang balasan James Lee Baker, saya lebih suka solusi ini karena menghilangkan ketergantungan pada dukungan browser untuk: pertama: yang dipilih ...
sumber
Bagi saya itu hanya berfungsi ketika saya menambahkan kode berikut:
.change();
Bagi saya itu hanya berfungsi ketika saya menambahkan kode berikut: Karena saya ingin "mengatur ulang" formulir, yaitu, pilih semua opsi pertama dari semua pilihan formulir, saya menggunakan kode berikut:
$('form').find('select').each(function(){ $(this).val($("select option:first").val()); $(this).change(); });
sumber
Menggunakan:
Silakan temukan kerja sederhana di JSFiddle ini .
sumber
.val()
hanya mendapatkan nilai opsi pertama dalam daftar. Sebenarnya tidak memilih (memilih) pilihan pertama, seperti yang ditanyakan dalam pertanyaan awal.Bagi saya, itu hanya berfungsi ketika saya menambahkan baris kode berikut
sumber
bekerja dengan baik di chrome
sumber
Jika Anda menyimpan objek jQuery dari elemen pilih:
sumber
Periksa pendekatan terbaik ini menggunakan jQuery dengan ECMAScript 6 :
sumber
Anda dapat memilih opsi apa saja
dropdown
dengan menggunakannya.sumber
$('select#id').val($('#id option')[index].value)
Ganti id dengan id tag pilih tertentu dan indeks dengan elemen tertentu yang ingin Anda pilih.
yaitu
Jadi di sini untuk pemilihan elemen pertama saya akan menggunakan kode berikut:
sumber
Menggunakan:
sumber