$('#mySelectBox option').each(function() {
if ($(this).isChecked())
alert('this option is selected');
else
alert('this is not');
});
Tampaknya, isChecked
itu tidak berhasil. JADI pertanyaan saya adalah apa cara yang tepat untuk melakukan ini? Terima kasih.
this.selected
) yang Anda harus memotong menggunakan jQuery ($(this).prop("selected")
) tetapi mereka berdua akan bekerja untuk Anda.Jawaban:
MEMPERBARUI
Metode jQuery yang lebih langsung ke opsi yang dipilih adalah:
Menjawab pertanyaan
.is(':selected')
adalah apa yang Anda cari:Cara non jQuery (bisa dibilang praktik terbaik) untuk melakukannya adalah:
Meskipun, jika Anda hanya mencari nilai yang dipilih coba:
Jika Anda mencari teks nilai yang dipilih lakukan:
Lihat: http://api.jquery.com/selected-selector/
Lain kali cari pertanyaan duplikat SO:
Dapatkan opsi yang dipilih saat ini atau Setel opsi yang dipilih atau Cara mendapatkan $ (ini) opsi yang dipilih di jQuery? atau opsi [terpilih = benar] tidak berfungsi
sumber
this.selected
dapat digunakan daripada$(this).is(":selected")
kurasa tidak perlu jsperf untuk ini, kan? Saya tidak menentang penggunaan jQuery !, tetapi menggunakannya saat Anda membutuhkannya, bukan ketika itu memberikan apa-apa selain overhead dan lebih banyak kode.this.selected
sepenuhnya valid tetapi ia meminta cara jQuery yang tepat untuk melakukannya.Anda bisa mendapatkan opsi yang dipilih dengan cara ini:
LIVE DEMO
Tetapi jika Anda ingin iterate semua pilihan, melakukannya dengan
this.selected
bukanthis.isChecked
yang tidak ada:LIVE DEMO
Memperbarui:
Anda mendapat banyak jawaban yang menyarankan Anda untuk menggunakan ini:
$(this).is(':selected')
baik, itu bisa dilakukan jauh lebih cepat dan lebih mudah denganthis.selected
jadi mengapa Anda harus menggunakannya dan bukan metode elemen DOM asli ?!Baca Mengenal Properti DOM Anda dan Fungsi di
jQuery
info tagsumber
this.selected
. Saya setuju dengan komentar Anda tentang penggunaan berlebihan / penyalahgunaan jQuery. Bagian dari mengetahui jQuery, adalah mengetahui kapan tidak menggunakannya. Yang mengatakan, perlu diingat bahwa':selected'
pemilih adalah pemilih Sizzle kustom, jadi menggunakannya menonaktifkan penggunaanquerySelectorAll
di browser yang didukung. Ini jelas bukan akhir dari dunia, karena ia menyediakan beberapa kode pendek yang bagus, tetapi saya pribadi cenderung menghindari hal-hal khusus.Jika Anda tidak terbiasa atau tidak nyaman
is()
, Anda bisa memeriksa nilainyaprop("selected")
.Seperti yang terlihat di sini :
Edit :
Sebagaimana @gdoron tunjukkan dalam komentar, cara tercepat dan paling tepat untuk mengakses properti pilihan adalah melalui pemilih DOM. Berikut adalah pembaruan biola yang menampilkan tindakan ini.
tampaknya bekerja dengan baik! Terima kasih gdoron.
sumber
$(this).prop("selected")
bukanthis.selected
?! apa yang kamu berikan ?? ps aku bukan downvoter ...is
yang paling baik digunakan untuk tetapi saya suka mengakses properti saya dengan prop dan attr. Dalam kebanyakan skenario, itu mungkin hanya masalah selera. Ya, ada ruam down-voting!jQuery
info tag . tidak ada alasan untuk menggunakan kode lebih lambat + lebih banyak kode untuk melakukan hal sederhana..is()
harus digunakan untuk pemilih rumit seperti$(...).is('.foo > [name="aaa"] input') or for properties that are not native DOM elements properties like
$ (...). is (": visable").$(this).is(':selected')
diterima. Stackoverflow harus digunakan untuk mempelajari praktik terbaik, bukan kesalahan umum ...)Anda dapat menggunakan cara ini dengan jquery:
sumber
menggunakan
untuk menguji apakah ini pilihan tertentu
myoption
:sumber
myoption
???Pertimbangkan ini sebagai daftar pilih Anda:
maka Anda memeriksa opsi yang dipilih seperti ini:
sumber
Dalam kasus saya, saya tidak tahu mengapa yang dipilih selalu benar. Jadi satu-satunya cara saya dapat berpikir adalah:
sumber
Jika Anda hanya ingin memeriksa apakah suatu opsi dipilih, maka Anda tidak perlu mengulangi semua opsi. Kerjakan saja
Catatan: Jika Anda memiliki opsi dengan nilai = 0 yang ingin Anda pilih, Anda perlu mengubah jika-kondisi ke
$('#mySelectBox').val() != null
sumber
Jika Anda perlu memeriksa opsi negara yang dipilih untuk nilai tertentu :
sumber
Jika Anda ingin memeriksa opsi yang dipilih melalui javascript
Metode paling sederhana adalah menambahkan atribut onchange di tag itu dan mendefinisikan fungsi dalam file js lihat contohnya jika file html Anda memiliki opsi seperti ini
Dan sekarang tambahkan fungsi dalam file js
Jika Anda ingin memeriksa opsi yang dipilih dalam file php
Cukup berikan atribut nama di tag Anda dan akseslah file php variabel global / array ($ _GET atau $ _POST) lihat contohnya jika file html Anda mirip dengan ini
Dan di file php Anda validation.php Anda dapat mengakses seperti ini
sumber