Biasanya saya gunakan $("#id").val()
untuk mengembalikan nilai opsi yang dipilih, tetapi kali ini tidak berfungsi. Tag yang dipilih memiliki idaioConceptName
kode html
<label>Name</label>
<input type="text" name="name" />
<select id="aioConceptName">
<option>choose io</option>
<option>roma</option>
<option>totti</option>
</select>
javascript
jquery
html
William Kinaan
sumber
sumber
#aioConceptName
value
atributnya<option>
, kan?$("#aioConceptName").val()
mengembalikanchoose io
.Jawaban:
Untuk opsi tarik turun, Anda mungkin menginginkan sesuatu seperti ini:
Alasannya
val()
tidak melakukan triknya adalah karena mengklik opsi tidak mengubah nilai dropdown - itu hanya menambah:selected
properti ke opsi yang dipilih yang merupakan anak dari dropdown.sumber
.val()
harus bekerja dalam kasus Anda - Anda harus memiliki kesalahan di tempat lain.val()
mengapa tidak menggunakanvar conceptVal = $("#aioConceptName option").filter(":selected").val();
?var conceptVal = $("#aioConceptName option:selected").val()
?var mySelect = $('#mySelect');
/ * ... kode lebih banyak terjadi ... * /var selectedText = mySelect.find(':selected').text();
Tetapkan nilai untuk setiap opsi
$('#aioConceptName').val()
tidak berfungsi karena.val()
mengembalikanvalue
atribut. Agar berfungsi dengan baik,value
atribut harus ditetapkan pada masing-masing<option>
.Sekarang Anda dapat memanggil
$('#aioConceptName').val()
alih-alih semua:selected
voodoo ini disarankan oleh orang lain.sumber
$('#aioConceptName').val()
mengembalikan null / "undefined"prompt
opsi khusus<option>Please select an option</option>
. Dalam kasus saya itu bukan masalah untuk menambahkan atribut nilai kosong<option value="">Please...</option>
tapi saya percaya dalam beberapa kasus tidak memiliki atribut nilai masuk akal. Tapi +1 karena kata-kata vodoo Anda membuat saya tersenyum.val()
memilihvalue
teks di dalamoption
? Yaitu memilih1
bukanroma
..val()
. Jika Anda ingin memanipulasi / menggunakan teks, gunakan$(":selected).text()
atau atur nilainya dan teks menjadi sama.Saya menemukan pertanyaan ini dan mengembangkan versi jawaban Elliot BOnneville yang lebih ringkas:
atau secara umum:
Ini menghemat panggilan jQuery tambahan, memilih semuanya dalam satu kesempatan, dan lebih jelas (pendapat saya).
sumber
querySelectorAll()
metode DOM asli (lihat dokumen jQuery ). Jadi, itu harus lebih lambat daripada solusi Eliot ..find(':selected')
saat itu memungkinkan Anda meneleponnya dari panggilan balik yang melekat pada suatu acara ... seperti$('#aioConceptname').bind('change', function(el) { console.log ( $(el).find(':selected').text() ); });
Coba ini untuk nilai ...
atau ini untuk teks ...
sumber
Jika Anda berada dalam konteks acara, di jQuery, Anda dapat mengambil elemen opsi yang dipilih menggunakan:
$(this).find('option:selected')
seperti ini:Edit
Seperti yang disebutkan oleh PossessWithin , Jawaban saya hanya menjawab pertanyaan: Cara memilih "Opsi" yang dipilih.
Selanjutnya, untuk mendapatkan nilai opsi, gunakan
option.val()
.sumber
$(this).find('option:selected').val()
di akhir untuk mendapatkan nilai dari elemen opsi, atau$(this).find('option:selected').text()
untuk mendapatkan teks. :)Sudahkah Anda mempertimbangkan untuk menggunakan javascript lama biasa?
Lihat juga Mendapatkan opsi teks / nilai dengan JavaScript
sumber
sumber
Membaca nilai (bukan teks) dari pilih:
Bagaimana cara menonaktifkan pilih? di kedua varian, nilai dapat diubah menggunakan:
SEBUAH
Pengguna tidak dapat berinteraksi dengan dropdown. Dan dia tidak tahu opsi apa yang mungkin ada.
B
Pengguna dapat melihat opsi di tarik turun tetapi semuanya dinonaktifkan:
Dalam hal ini,
$("#Status").val()
hanya akan berfungsi untuk versi jQuery yang lebih kecil dari1.9.0
. Semua varian lain akan berfungsi.Bagaimana cara memperbarui pilih yang dinonaktifkan?
Dari kode di belakang Anda masih dapat memperbarui nilai di pilih Anda. Ini dinonaktifkan hanya untuk pengguna:
Dalam beberapa kasus, Anda mungkin harus memecat acara:
sumber
sumber
:selected
.. val () atau text () tidak berfungsi dengan benar pada beberapa pilihan pilih, hanya jika beberapa array dihasilkan seperti yangmap()
bisa dilakukan.Anda harus menggunakan sintaks ini:
Jadi coba Kode ini:
Anda dapat menguji di Fiddle: http://jsfiddle.net/PJT6r/9/
lihat tentang jawaban ini di posting ini
sumber
Menggunakan jQuery, cukup tambahkan
change
acara dan dapatkan nilai atau teks yang dipilih dalam penangan itu.Jika Anda membutuhkan teks yang dipilih, silakan gunakan kode ini:
Atau jika Anda membutuhkan nilai yang dipilih, silakan gunakan kode ini:
sumber
Gunakan
jQuery.val()
fungsi untuk elemen tertentu juga:sumber
Bagi siapa pun yang mengetahui bahwa jawaban terbaik tidak berhasil.
Coba gunakan:
Berfungsi untuk saya dalam proyek-proyek baru-baru ini sehingga layak untuk melihatnya.
sumber
Ini seharusnya bekerja:
sumber
Lurus ke depan dan cukup mudah:
Dropdown Anda
Kode jquery untuk mendapatkan nilai yang dipilih
sumber
Anda dapat mencoba men-debug dengan cara ini:
sumber
Untuk mendapatkan nilai tag yang dipilih:
Dan jika Anda ingin mendapatkan teks, gunakan kode ini:
Sebagai contoh:
sumber
Jika Anda ingin mengambil atribut 'nilai' alih-alih simpul teks, ini akan bekerja untuk Anda:
sumber
coba yang ini
sumber
Bayangkan DDL sebagai array dengan indeks, Anda memilih satu indeks. Pilih yang ingin Anda atur dengan JS Anda.
sumber
Saya harap ini juga membantu untuk memahami dengan lebih baik dan membantu mencoba ini di bawah,
untuk lebih jelasnya silakan http://www.drtuts.com/get-value-multi-select-dropdown-without-value-attribute-using-jquery/
sumber
Kamu bisa menggunakan
$("#drpList").val();
sumber
untuk mengambil pilih dengan kelas yang sama = nama Anda bisa melakukan ini, untuk memeriksa apakah opsi pilih dipilih.
sumber
Saya memiliki masalah yang sama dan saya mencari tahu mengapa itu tidak bekerja pada kasus saya
. Halaman html dibagi menjadi beberapa fragmen html dan saya menemukan bahwa saya memiliki bidang input lain yang membawa ID yang sama
select
, yang menyebabkanval()
selalu kosong.Saya harap ini menghemat hari bagi siapa saja yang memiliki masalah serupa.
sumber
untuk menggunakan $ ("# id"). val, Anda harus menambahkan nilai ke opsi seperti ini:
lain, Anda bisa menggunakan
Saya berharap itu membantu ..
sumber
Inilah solusi sederhana untuk masalah ini.
sumber
var selectedaioConceptName = $('#aioConceptName option:selected').val();
lebih baik daripada menggunakan find lain ()Mungkin taruhan terbaik Anda dengan skenario semacam ini adalah menggunakan metode perubahan jQuery untuk menemukan nilai yang saat ini dipilih, seperti:
Saya lebih suka metode ini karena Anda kemudian dapat melakukan fungsi untuk setiap opsi yang dipilih di bidang pilih yang diberikan.
Semoga itu bisa membantu!
sumber
Biasanya Anda tidak hanya perlu mendapatkan nilai yang dipilih, tetapi juga menjalankan beberapa tindakan. Jadi mengapa tidak menghindari semua sihir jQuery dan hanya memberikan nilai yang dipilih sebagai argumen untuk panggilan aksi?
sumber
Anda dapat memilih menggunakan opsi yang dipilih tepat: Di bawah ini akan memberikan innerText
Sementara di bawah ini akan memberi Anda nilai.
sumber