Untuk beberapa alasan, sepertinya saya tidak bisa memikirkan hal ini.
Saya memiliki beberapa tombol radio di html saya yang mengubah kategori:
<input type="radio" name="main-categories" id="_1234" value="1234" /> // All
<input type="radio" name="main-categories" id="_2345" value="2345" /> // Certain category
<input type="radio" name="main-categories" id="_3456" value="3456" /> // Certain category
<input type="radio" name="main-categories" id="_4567" value="4567" /> // Certain category
Pengguna dapat memilih mana saja yang dia inginkan, tetapi ketika peristiwa tertentu terpicu, saya ingin menyetel 1234
agar tombol radio dicentang, karena ini adalah tombol radio yang dicentang default.
Saya telah mencoba versi ini (dengan dan tanpa jQuery):
document.getElementById('#_1234').checked = true;
Tapi sepertinya tidak diperbarui. Saya membutuhkannya untuk memperbarui secara nyata sehingga pengguna dapat melihatnya. Ada yang bisa membantu?
EDIT: Saya hanya lelah dan mengabaikan #
, terima kasih telah menunjukkannya, itu dan $.prop()
.
document.getElementById('_1234').checked = true;
#
Jawaban:
Jangan mencampur sintaks CSS / JQuery (
#
untuk pengenal) dengan JS asli.Solusi JS asli:
document.getElementById("_1234").checked = true;
Solusi JQuery:
$("#_1234").prop("checked", true);
sumber
querySelector
saya bayangkan..attr("checked", "checked")
querySelector
tidak dikirimkan di browser hingga 2009 dan tidak digunakan secara luas oleh pengembang sampai beberapa waktu setelah itu. Saya tidak pernah menggunakan jQuery sebanyak itu, tetapi itu berdampak signifikan pada evolusi JS.Jika Anda ingin menyetel tombol "1234", Anda perlu menggunakan "id":
document.getElementById("_1234").checked = true;
Saat Anda menggunakan API browser ("getElementById"), Anda tidak menggunakan sintaks pemilih; Anda baru saja meneruskan nilai "id" sebenarnya yang Anda cari. Anda menggunakan sintaks pemilih dengan jQuery atau
.querySelector()
dan.querySelectorAll()
.sumber
Hari ini, di tahun 2016, aman digunakan
document.querySelector
tanpa mengetahui ID (terutama jika Anda memiliki lebih dari 2 tombol radio):document.querySelector("input[name=main-categories]:checked").value
sumber
Cara termudah mungkin adalah dengan jQuery, sebagai berikut:
$(document).ready(function(){ $("#_1234").attr("checked","checked"); })
Ini menambahkan atribut baru "diperiksa" (yang dalam HTML tidak membutuhkan nilai). Ingatlah untuk menyertakan pustaka jQuery:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
sumber
$("#_1234").prop("checked", true)
Dengan menggunakan
document.getElementById()
fungsi Anda tidak harus melewati#
sebelum elemen id.Kode:
document.getElementById('_1234').checked = true;
Demo: JSFiddle
sumber
Saya dapat memilih (centang) tombol input radio dengan menggunakan kode Javascript ini di Firefox 72, dalam halaman opsi Ekstensi Web untuk LOAD nilainya:
var reloadItem = browser.storage.sync.get('reload_mode'); reloadItem.then((response) => { if (response["reload_mode"] == "Periodic") { document.querySelector('input[name=reload_mode][value="Periodic"]').click(); } else if (response["reload_mode"] == "Page Bottom") { document.querySelector('input[name=reload_mode][value="Page Bottom"]').click(); } else { document.querySelector('input[name=reload_mode][value="Both"]').click(); } });
Dimana kode terkait untuk MENYIMPAN nilainya adalah:
reload_mode: document.querySelector('input[name=reload_mode]:checked').value
Diberikan HTML seperti berikut:
<input type="radio" id="periodic" name="reload_mode" value="Periodic"> <label for="periodic">Periodic</label><br> <input type="radio" id="bottom" name="reload_mode" value="Page Bottom"> <label for="bottom">Page Bottom</label><br> <input type="radio" id="both" name="reload_mode" value="Both"> <label for="both">Both</label></br></br>
sumber