Saya mencoba mengatur tombol radio. Saya ingin mengaturnya dengan menggunakan nilai atau id.
Ini yang saya coba.
$('input:radio[name=cols]'+" #"+newcol).attr('checked',true);
newcol
adalah id dari tombol radio.
Mungkin sedikit edit dalam rangka.
Ada dua set kotak radio satu dengan cols dan yang lainnya dengan baris. Jadi saya melihat intinya tidak menggunakan id. Salahku. Jadi saya punya contoh:
<input type="radio" name="rows" class="listOfCols"
style="width: 50%; " value="Site"></input>
dan
<input type="radio" name="cols" class="listOfCols"
style="width: 50%; " value="Site"></input>
dengan id dihapus, dan saya perlu mengatur yang benar.
jquery
radio-button
mike628
sumber
sumber
Jawaban:
Pemilih Anda mencari turunan dari
input:radio[name=cols]
elemen yang memiliki idnewcol
(nilainya dari variabel itu).Coba ini sebagai gantinya (karena Anda tetap memilih berdasarkan ID):
Berikut ini adalah demo: http://jsfiddle.net/jasper/n8CdM/1/
Juga, mulai jQuery 1.6 metode mengubah properti yang ditangguhkan adalah
.prop()
: http://api.jquery.com/propsumber
prop
vsattr
.attr
tidak digunakan lagi untuk properti dan tidak lagi berfungsi di jQuery 2.0))Saya menemukan jawabannya di sini:
https://web.archive.org/web/20160421163524/http://vijayt.com/Post/Set-RadioButton-value-using-jQuery
Pada dasarnya, jika Anda ingin memeriksa satu tombol radio, Anda HARUS memberikan nilai sebagai array:
sumber
Di pemilih Anda, Anda tampaknya mencoba mengambil beberapa elemen bersarang dari tombol radio Anda dengan id yang diberikan. Jika Anda ingin memeriksa tombol radio, Anda harus memilih tombol radio ini di pemilih dan bukan yang lain:
Ini mengasumsikan bahwa Anda memiliki tombol radio berikut di markup Anda:
Jika tombol radio Anda memiliki id:
Anda bisa langsung menggunakan pemilih id:
sumber
cols
nama maka$('input:radio[name="cols"]').attr('checked', 'checked');
hanya akan memilih yang terakhir. Ini akan menjalankan kode pada masing-masing, tetapi setiap kali Anda mengaturchecked
properti, elemen yang sebelumnya disetel tidak disetel. Berikut ini demo: jsfiddle.net/jasper/n8CdM/2Anda dapat mencoba kode berikut:
Ini akan mengatur atribut diperiksa untuk kolom radio dan nilai yang ditentukan.
sumber
...the most important concept to remember about the checked attribute is that it does not correspond to the checked property.
Sumber: api.jquery.com/attrMengapa Anda perlu
'input:radio[name=cols]'
. Tidak tahu html Anda, tetapi dengan asumsi id unik, Anda bisa melakukan ini.sumber
Coba ini:
Saya memiliki masalah dengan
attr("checked", true)
, jadi saya cenderung menggunakan yang di atas sebagai gantinya.Juga, jika Anda memiliki ID maka Anda tidak perlu hal-hal lain untuk seleksi. ID unik.
sumber
checked="checked"
atribut baru dan browser akan menunjukkannya sebagai dicentang, kemudian pilih B dan hal yang sama akan terjadi. Sekarang ketika Anda memilih A lagi itu sudah memilikichecked="checked"
atribut dan tidak ada yang akan berubah. Sebagai efek samping dari B yang masih akan dipilih, bukan A.Karena
newcol
ini adalah ID dari tombol radio, Anda cukup menggunakannya seperti di bawah ini.sumber
Menggunakan
.filter()
juga berfungsi, dan fleksibel untuk id, nilai, nama:$('input[name="cols"]').filter("[value='Site']").attr('checked', true);
(terlihat di blog ini )
sumber
Menggabungkan jawaban sebelumnya:
sumber
Anda cukup menggunakan:
sumber
Jawaban yang dipilih berfungsi dalam kasus ini.
Tetapi pertanyaannya adalah tentang menemukan elemen berdasarkan radiogroup dan id dinamis, dan jawabannya juga dapat membiarkan tombol radio yang ditampilkan tidak terpengaruh.
Baris ini tidak memilih apa yang diminta sembari menunjukkan perubahan di layar juga.
sumber