Bagaimana cara saya mendapatkan nilai yang dipilih dari daftar dropdown menggunakan JavaScript?
Saya mencoba metode di bawah ini, tetapi semuanya mengembalikan indeks yang dipilih alih-alih nilainya:
var as = document.form1.ddlViewBy.value;
var e = document.getElementById("ddlViewBy");
var strUser = e.options[e.selectedIndex].value;
javascript
html-select
Tangan Api
sumber
sumber
Jawaban:
Jika Anda memiliki elemen pilih yang terlihat seperti ini:
Menjalankan kode ini:
Akan
strUser
menjadi2
. Jika yang Anda inginkan sebenarnyatest2
, lakukan ini:Yang akan
strUser
menjaditest2
sumber
onchange
:)var strUser = e.options[e.selectedIndex].value;
mengapa tidak sajavar strUser = e.value ?
var e = document.getElementById("ddlViewBy").value;
e.target.options[e.target.selectedIndex].text
tidak tahu mengapa itu salah dalam semua jawaban di sini ..JavaScript Biasa:
jQuery:
AngularJS : ( http://jsfiddle.net/qk5wwyct ):
sumber
element.options[e.selectedIndex].value
pastielement.options[element.selectedIndex].value
e.target.options[e.target.selectedIndex].text
tidak tahu mengapa itu salah dalam semua jawaban di sini ..Ini benar dan harus memberi Anda nilai. Apakah itu teks yang Anda cari?
Jadi Anda jelas tentang terminologinya:
Opsi ini memiliki:
sumber
e.target.options[e.target.selectedIndex].text
tidak tahu mengapa itu salah dalam semua jawaban di sini ..Kode berikut menunjukkan berbagai contoh yang terkait dengan mendapatkan / menempatkan nilai dari bidang input / pilih menggunakan JavaScript.
Tautan Sumber
Bekerja Javascript & Demo jQuery
Script berikut mendapatkan nilai dari opsi yang dipilih dan meletakkannya di kotak teks 1
Script berikut mendapatkan nilai dari kotak teks 2 dan mengingatkan dengan nilainya
Skrip berikut memanggil fungsi dari suatu fungsi
sumber
onchange=run(this.value)
atau(this.text)
bisa lebih menguntungkan.sumber
Jika Anda pernah menemukan kode yang ditulis murni untuk Internet Explorer, Anda mungkin melihat ini:
Menjalankan hal di atas dalam Firefox et al akan memberi Anda kesalahan 'bukan fungsi', karena Internet Explorer memungkinkan Anda untuk menggunakan () alih-alih []:
Cara yang benar adalah dengan menggunakan tanda kurung siku.
sumber
Bidang input / formulir apa pun dapat menggunakan kata kunci "ini" saat Anda mengaksesnya dari dalam elemen. Ini menghilangkan kebutuhan untuk menemukan formulir di pohon dom dan kemudian menemukan elemen ini di dalam formulir.
sumber
Pemula cenderung ingin mengakses nilai dari yang dipilih dengan atribut NAME daripada atribut ID. Kita tahu semua elemen bentuk memerlukan nama, bahkan sebelum mereka mendapatkan id.
Jadi, saya menambahkan
getElementByName()
solusinya hanya untuk dilihat oleh pengembang baru juga.NB. nama untuk elemen formulir harus unik agar formulir Anda dapat digunakan setelah diposkan, tetapi DOM dapat memungkinkan nama dibagikan oleh lebih dari satu elemen. Untuk alasan itu pertimbangkan untuk menambahkan ID ke formulir jika Anda bisa, atau secara eksplisit dengan nama elemen formulir
my_nth_select_named_x
danmy_nth_text_input_named_y
.Contoh menggunakan
getElementByName
:sumber
Ada dua cara untuk menyelesaikan ini baik menggunakan JavaScript atau jQuery.
JavaScript:
ATAU
jQuery:
sumber
Gunakan saja
$('#SelectBoxId option:selected').text();
untuk mendapatkan teks seperti yang tercantum$('#SelectBoxId').val();
untuk mendapatkan nilai indeks yang dipilihsumber
Jawaban sebelumnya masih menyisakan ruang untuk perbaikan karena kemungkinan, intuitif kode, dan penggunaan
id
versusname
. Seseorang dapat membaca tiga data dari opsi yang dipilih - nomor indeksnya, nilainya dan teksnya. Kode lintas-browser yang sederhana ini melakukan ketiganya:Demo langsung: http://jsbin.com/jiwena/1/edit?html,output .
id
harus digunakan untuk keperluan make-up. Untuk keperluan bentuk fungsional,name
masih valid, juga dalam HTML5, dan masih harus digunakan. Terakhir, perhatikan penggunaan kurung siku versus bundar di tempat-tempat tertentu. Seperti yang telah dijelaskan sebelumnya, hanya Internet Explorer versi lama yang akan menerima yang bundar di semua tempat.sumber
Menggunakan jQuery:
sumber
Solusi lain adalah:
sumber
Menjalankan contoh cara kerjanya:
Catatan: Nilai-nilai tidak berubah karena dropdown diubah, jika Anda memerlukan fungsionalitas itu maka perubahan onClick akan diterapkan.
sumber
Anda bisa menggunakannya
querySelector
.Misalnya
sumber
Saya memiliki pandangan yang sedikit berbeda tentang cara mencapai ini. Saya biasanya melakukan ini dengan pendekatan berikut (ini adalah cara yang lebih mudah dan bekerja dengan setiap browser sejauh yang saya tahu):
sumber
Pada 2015, di Firefox , berikut ini juga berfungsi.
sumber
Agar sesuai dengan jawaban sebelumnya, ini adalah bagaimana saya melakukannya sebagai satu-baris. Ini untuk mendapatkan teks aktual dari opsi yang dipilih. Ada beberapa contoh bagus untuk mendapatkan nomor indeks. (Dan untuk teksnya, saya hanya ingin menunjukkan cara ini)
Dalam beberapa kasus yang jarang terjadi, Anda mungkin perlu menggunakan tanda kurung, tetapi ini akan sangat jarang.
Saya ragu proses ini lebih cepat dari versi dua baris. Saya hanya ingin menggabungkan kode saya sebanyak mungkin.
Sayangnya ini masih mengambil elemen dua kali, yang tidak ideal. Metode yang hanya mengambil elemen sekali saja akan lebih bermanfaat, tetapi saya belum menemukan jawabannya, dalam hal melakukan ini dengan satu baris kode.
sumber
Ini adalah baris kode JavaScript:
Dengan asumsi bahwa menu dropdown bernama daftar
name="list"
dan dimasukkan dalam formulir dengan atribut namaname="form1"
.sumber
var as = document.form1.ddlViewBy.value;
..."Anda harus menggunakan
querySelector
untuk mencapai ini. Ini juga menstandarkan cara mendapatkan nilai dari elemen formulir.var dropDownValue = document.querySelector('#ddlViewBy').value;
Fiddle: https://jsfiddle.net/3t80pubr/
sumber
Saya tidak tahu apakah saya orang yang tidak menjawab pertanyaan dengan benar, tetapi ini hanya berfungsi untuk saya: Menggunakan acara onchange () di html Anda, mis.
// javascript
Ini akan memberi Anda nilai apa pun pada dropdown pilih per klik
sumber
Cara paling sederhana untuk melakukan ini adalah:
sumber
Berikut cara mudah untuk melakukannya dalam fungsi onchange:
event.target.options[event.target.selectedIndex].dataset.name
sumber
Kerjakan saja:
document.getElementById('idselect').options.selectedIndex
Maka Anda saya akan mendapatkan nilai indeks pilih, mulai dari 0.
sumber
Mencoba
Tampilkan cuplikan kode
sumber
Buat menu drop-down dengan beberapa opsi (Sebanyak yang Anda inginkan!)
Saya membuat sedikit lucu. Berikut cuplikan kode:
yay potongannya bekerja
sumber