Saya mengalami beberapa masalah aneh dengan program JS saya. Saya memiliki ini berfungsi dengan baik tetapi untuk beberapa alasan tidak lagi berfungsi Saya hanya ingin menemukan nilai tombol radio (mana yang dipilih) dan mengembalikannya ke variabel. Untuk beberapa alasan ia terus kembali undefined
.
Ini kode saya:
function findSelection(field) {
var test = 'document.theForm.' + field;
var sizes = test;
alert(sizes);
for (i=0; i < sizes.length; i++) {
if (sizes[i].checked==true) {
alert(sizes[i].value + ' you got a value');
return sizes[i].value;
}
}
}
submitForm
:
function submitForm() {
var genderS = findSelection("genderS");
alert(genderS);
}
HTML:
<form action="#n" name="theForm">
<label for="gender">Gender: </label>
<input type="radio" name="genderS" value="1" checked> Male
<input type="radio" name="genderS" value="0" > Female<br><br>
<a href="javascript: submitForm()">Search</A>
</form>
javascript
html
for-loop
radio-button
mkyong
sumber
sumber
Jawaban:
Anda dapat melakukan sesuatu seperti ini:
jsfiddle
Sunting: Terima kasih HATCHA dan jpsetung untuk saran edit Anda.
sumber
@
sintaksnya sudah ditinggalkan bahkan lebih awal dari itu (jquery 1.2)@
pasti harus dihapusdocument.querySelector()
mungkin harus menjadi pendekatan yang disarankan dalam JavaScript langsung sekarang.Ini berfungsi dengan penjelajah mana pun.
Ini adalah cara sederhana untuk mendapatkan nilai dari jenis input apa pun. Anda juga tidak perlu menyertakan jalur jQuery.
sumber
document.querySelector(...)
adalahnull
.var selector = document.querySelector('input[name="genderS"]:checked'); if(selector) console.log(selector.value);
:checked
trik itu benar-benar berhasil untuk saya .. bagi saya perbaikan untuk membaca tombol radio dari formulir Templat Meteor adalahaccountType = template.find("[name='optradio']:checked").value;
sumber
document.forms.your-form-name.name-shared-by-radio-buttons.value
Sejak jQuery 1.8, sintaks yang benar untuk kueri adalah
Tidak
$('input[@name="genderS"]:checked').val();
lagi, yang berfungsi di jQuery 1.7 (dengan @ ).sumber
Versi ECMAScript 6
sumber
Solusi paling sederhana:
sumber
Coba ini
Seekor biola di sini .
sumber
Sunting: Seperti yang dikatakan oleh Chips_100 Anda harus menggunakan:
langsung tanpa menggunakan variabel tes.
Jawaban lama:
Bukankah seharusnya Anda
eval
suka ini?Saya tidak tahu cara kerjanya, tetapi bagi saya Anda hanya menyalin sebuah string.
sumber
var sizes = document.theForm[field];
dan menghapus tugas pertama, jadi tidak menggunakantest
variabel lagi.eval('var sizes=document.theForm.' + field)
?var sizes = eval(test);
akan bekerja seperti itu (saya hanya mengetesnya di pembakar).field
tanda kurung. Ada tebakan mengapa?Ini murni JavaScript, berdasarkan jawaban oleh @Fontas tetapi dengan kode pengaman untuk mengembalikan string kosong (dan menghindari a
TypeError
) jika tidak ada tombol radio yang dipilih:Kode rusak seperti ini:
<input>
tipe, (b) memilikiname
atributgenderS
, dan (c) dicentang.genderSRadio
variabel truthy jika Jalur 1 temuan kontrol dan nol / falsey jika tidak.Untuk JQuery, gunakan jawaban @ jbabey, dan perhatikan bahwa jika tidak ada tombol radio yang dipilih, ia akan kembali
undefined
.sumber
Jika seseorang mencari jawaban dan mendarat di sini seperti saya, dari Chrome 34 dan Firefox 33 Anda dapat melakukan hal berikut:
atau lebih sederhana:
refrence: https://developer.mozilla.org/en-US/docs/Web/API/RadioNodeList/value
sumber
Berikut adalah Contoh untuk Radio di mana atribut Checked = "checked" tidak digunakan
DEMO : http://jsfiddle.net/ipsjolly/hgdWp/2/ [ Klik Temukan tanpa memilih Radio apa pun ]
Sumber: http://bloggerplugnplay.blogspot.in/2013/01/validateget-checked-radio-value-in.html
sumber
Berikut cara yang bagus untuk mendapatkan nilai tombol radio yang dicentang dengan JavaScript biasa:
Sumber: https://ultimatecourses.com/blog/get-value-checked-radio-buttons
Menggunakan HTML ini:
Anda juga dapat menggunakan Array Find the
checked
property untuk menemukan barang yang dicentang:sumber
Menggunakan javascript murni, Anda bisa menangani referensi ke objek yang mengirim acara.
sumber
misalkan Anda perlu menempatkan baris tombol radio yang berbeda dalam formulir, masing-masing dengan nama atribut yang terpisah ('option1', 'option2' dll) tetapi dengan nama kelas yang sama. Mungkin Anda membutuhkannya dalam beberapa baris di mana mereka masing-masing akan mengirimkan nilai berdasarkan skala 1 hingga 5 yang berkaitan dengan pertanyaan. Anda dapat menulis javascript seperti:
Saya juga akan memasukkan hasil akhir ke dalam elemen formulir tersembunyi untuk dikirimkan bersama dengan formulir.
sumber
sumber
Jika mungkin bagi Anda untuk menetapkan Id untuk elemen formulir Anda (), cara ini dapat dianggap sebagai cara alternatif yang aman (khususnya ketika nama elemen grup radio tidak unik dalam dokumen):
HTML:
sumber
dll kemudian gunakan saja
Atau
sumber
sumber