Saya ingin mendapatkan nilai yang dipilih dari sekelompok tombol radio.
Inilah HTML saya:
<div id="rates">
<input type="radio" id="r1" name="rate" value="Fixed Rate"> Fixed Rate
<input type="radio" id="r2" name="rate" value="Variable Rate"> Variable Rate
<input type="radio" id="r3" name="rate" value="Multi Rate" checked="checked"> Multi Rate
</div>
Ini .js saya:
var rates = document.getElementById('rates').value;
var rate_value;
if(rates =='Fixed Rate'){
rate_value = document.getElementById('r1').value;
}else if(rates =='Variable Rate'){
rate_value = document.getElementById('r2').value;
}else if(rates =='Multi Rate'){
rate_value = document.getElementById('r3').value;
}
document.getElementById('results').innerHTML = rate_value;
Saya terus terdefinisi.
javascript
html
radio-button
ZombieBatman
sumber
sumber
$("input[type='radio'][name='rate']:checked").val();
.checked
<form></form>
wadah.Jawaban:
Elemen kurs adalah a
div
, jadi tidak akan memiliki nilai. Ini mungkin dari manaundefined
asalnya.The
checked
properti akan memberitahu Anda apakah elemen yang dipilih:sumber
$("input[name=rate]:checked").val()
[checked]
) mencari atribut (yaitu keadaan awal). Anda sebaiknya menggunakan:checked
, yang mencari properti (yaitu keadaan saat ini), dan yang hampir selalu apa yang Anda inginkan.document.querySelectorAll("input[name=rate]:checked")[0].value
Ini berfungsi di IE9 dan di atas dan semua browser lainnya.
sumber
:checked
pemilih.rate
tidak diperlukan.:checked
elemen - mungkin memiliki segalanya "hash dan di-cache" dan ini adalahO(1)
operasi. Kecuali Anda memrofilinya untuk menunjukkan sesuatu seperti waktu kueri bertambah dengan jumlah elemen pada halaman, atau kecuali Anda memahami kode sumber browser di belakangnya, Anda tidak bisa mengatakannya.Anda bisa mendapatkan nilainya dengan menggunakan
checked
properti.sumber
break
ataureturn
pernyataan di dalamif
blok untuk menghentikan lintasan tambahan melalui loop. Poin kecil, tapi gaya yang bagus.Untuk Anda yang tinggal di tepi:
Sekarang ada sesuatu yang disebut RadioNodeList dan mengakses properti nilainya akan mengembalikan nilai input yang saat ini diperiksa. Ini akan menghapus perlunya menyaring input 'dicentang' seperti yang kita lihat di banyak jawaban yang diposting.
Formulir Contoh
Untuk mengambil nilai yang dicentang, Anda dapat melakukan sesuatu seperti ini:
JSFiddle untuk membuktikannya: http://jsfiddle.net/vjop5xtq/
Harap perhatikan ini diterapkan di Firefox 33 (Semua peramban utama lainnya sepertinya mendukungnya). Browser yang lebih lama akan membutuhkan polfyill
RadioNodeList
agar ini berfungsi dengan baiksumber
form.elements["test"].value
bekerja sangat baik di Chrome [Versi 49.0.2623.87 m].Yang bekerja untuk saya diberikan di bawah ini dari api.jquery.com.
HTML
JavaScript
Pilihan variabel yang dipilih akan berisi nilai tombol radio yang dipilih (yaitu) o1 atau o2
sumber
Pilihan lain (tampaknya lebih tua) adalah menggunakan format: "document.nameOfTheForm.nameOfTheInput.value;" misalnya document.mainForm.rads.value;
Anda bisa merujuk ke elemen dengan namanya di dalam formulir. HTML asli Anda tidak mengandung elemen formulir.
Fiddle di sini (berfungsi di Chrome dan Firefox): https://jsfiddle.net/Josh_Shields/23kg3tf4/1/
sumber
Gunakan document.querySelector ('input [type = radio]: checked'). Value; untuk mendapatkan nilai dari kotak centang yang dipilih, Anda dapat menggunakan atribut lain untuk mendapatkan nilai seperti nama = jenis kelamin dll. silakan pergi melalui potongan di bawah ini pasti akan membantu Anda,
Larutan
Terima kasih
sumber
KODE HTML:
<input type="radio" name="rdoName" value="YES"/> <input type="radio" name="rdoName" value="NO"/>
KODE JQUERY:
Kamu akan mendapatkan
sumber
Dalam Javascript kita bisa mendapatkan nilai dengan menggunakan "
getElementById()
" ID dalam kode di atas yang Anda posting mengandung nama bukan Id sehingga Anda memodifikasi seperti inigunakan nilai ini sesuai dengan kode Anda
sumber
Setahun atau lebih telah berlalu sejak pertanyaan diajukan, tetapi saya pikir peningkatan substansial dari jawaban itu mungkin. Saya menemukan ini skrip yang paling mudah dan serbaguna, karena memeriksa apakah tombol telah diperiksa, dan jika demikian, apa nilainya:
Anda juga dapat memanggil fungsi di dalam fungsi lain, seperti ini:
sumber
Dengan asumsi elemen form Anda dirujuk oleh
myForm
variabel di bawah ini, dan bahwa tombol radio Anda membagikan nama "my-radio-button-group-name", berikut ini adalah JavaScript murni dan patuh standar (walaupun saya belum memeriksanya agar tersedia di mana saja) ):Hal di atas akan menghasilkan nilai elemen tombol radio yang dicentang (atau disebut juga), jika ada, atau
null
sebaliknya. Inti dari solusinya adalahnamedItem
fungsi yang bekerja dengan tombol radio secara khusus.Lihat HTMLFormElement.elements , HTMLFormControlsCollection.namedItem dan terutama RadioNodeList.value , seperti
namedItem
biasanya mengembalikanRadioNodeList
objek.Saya menggunakan MDN karena memungkinkan seseorang untuk melacak kepatuhan standar, setidaknya untuk tingkat yang besar, dan karena lebih mudah untuk dipahami daripada banyak publikasi WhatWG dan W3C.
sumber
RadioNodeList
melalui sesuatu sepertiform.elements[name]
atauform[name]
(mungkin, spekulasi) atau melalui sintaksis saya di atas.langsung memanggil tombol radio berkali-kali memberi Anda nilai tombol FIRST, bukan tombol CHECKED. daripada mengulang-ulang melalui tombol radio untuk melihat mana yang dicentang, saya lebih suka memanggil
onclick
fungsi javascript yang menetapkan variabel yang nantinya dapat diambil sesuai keinginan.yang memanggil:
keuntungan tambahan adalah bahwa saya dapat menangani data dan / atau bereaksi terhadap pemeriksaan tombol (dalam hal ini, mengaktifkan tombol SUBMIT).
sumber
onchange
acara sebagai gantinya, dalam kasus pengguna menggunakan keyboard.Peningkatan ke fungsi yang disarankan sebelumnya:
sumber
Saya mengambil masalah ini dengan javascript murni adalah untuk menemukan node yang diperiksa, menemukan nilainya dan mengeluarkannya dari array.
Perhatikan bahwa saya menggunakan fungsi panah . Lihat biola ini sebagai contoh kerja.
sumber
tagName === 'INPUT'
cek untuk memastikan Anda tidak bekerja pada tag apa pun selaininput
.Jika Anda menggunakan jQuery:
$('input[name="rate"]:checked').val();
sumber
Anda dapat menggunakan
.find()
untuk memilih elemen yang diperiksa:sumber
kemudian...
sumber
rates.rate.value
notrates.value
document.getElementById("rates").rate.value
[atau]document.forms[0].rate.value
periksa nilai dengan ID:
sumber
Saya menggunakan fungsi jQuery.click untuk mendapatkan hasil yang diinginkan:
Semoga ini bisa membantu.
sumber
Jika tombol dalam bentuk
var myform = new FormData(getformbywhatever); myform.get("rate");
QuerySelector di atas adalah solusi yang lebih baik. Namun, metode ini mudah dimengerti, terutama jika Anda tidak memiliki petunjuk tentang CSS. Ditambah lagi, bidang input sangat mungkin dalam bentuk.
Tidak memeriksa, ada solusi serupa lainnya, maaf untuk pengulangan
sumber
tidak bisa mendapatkan nilai dari tombol radio seperti itu yang digunakan
sumber
Jika Anda menggunakan
JQuery
, silakan gunakan bellow snippet untuk grup tombol radio.sumber
Cukup gunakan:
document.querySelector('input[rate][checked]').value
sumber
document.querySelector('input[name = rate]:checked').value
sumber
Anda juga dapat memutar melalui tombol dengan forEach-loop pada elemen
sumber
https://codepen.io/anon/pen/YQxbZJ
HTML
JS
sumber
Di php itu
halaman html sangat mudah
Ambil nilai dari formulir ke php
sumber