Pour une raison quelconque, je n'arrive pas à comprendre cela.
J'ai quelques boutons radio dans mon html qui bascule entre les catégories:
<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
L'utilisateur peut sélectionner ce qu'il veut, mais lorsqu'un certain événement se déclenche, je veux définir 1234
bouton radio coché, car il s'agit du bouton radio coché par défaut.
J'ai essayé des versions de ceci (avec et sans jQuery):
document.getElementById('#_1234').checked = true;
Mais cela ne semble pas se mettre à jour. J'en ai besoin pour être visiblement mis à jour pour que l'utilisateur puisse le voir. Quelqu'un peut-il aider?
EDIT: Je suis juste fatigué et négligé #
, merci de l'avoir signalé, cela et $.prop()
.
document.getElementById('_1234').checked = true;
#
Réponses:
Ne mélangez pas la syntaxe CSS / JQuery (
#
pour l'identifiant) avec le JS natif.Solution JS native:
document.getElementById("_1234").checked = true;
Solution JQuery:
$("#_1234").prop("checked", true);
la source
querySelector
j'imagine..attr("checked", "checked")
querySelector
n'a été livré dans les navigateurs qu'en 2009 et n'a été largement utilisé par les développeurs que quelque temps après. Je n'ai jamais autant utilisé jQuery, mais cela a eu un impact significatif sur l'évolution de JS.Si vous souhaitez définir le bouton "1234", vous devez utiliser son "id":
Lorsque vous utilisez l'API du navigateur ("getElementById"), vous n'utilisez pas la syntaxe du sélecteur; vous passez simplement la valeur "id" que vous recherchez. Vous utilisez la syntaxe de sélecteur avec jQuery ou
.querySelector()
et.querySelectorAll()
.la source
Aujourd'hui, en 2016, il est possible de l'utiliser
document.querySelector
sans connaître l'ID (surtout si vous avez plus de 2 boutons radio):la source
Le moyen le plus simple serait probablement avec jQuery, comme suit:
Cela ajoute un nouvel attribut "vérifié" (qui en HTML n'a pas besoin d'une valeur). N'oubliez pas d'inclure la bibliothèque jQuery:
la source
$("#_1234").prop("checked", true)
En utilisant la
document.getElementById()
fonction, vous n'avez pas à passer#
avant l'identifiant de l'élément.Code:
Démo: JSFiddle
la source
J'ai pu sélectionner (vérifier) un bouton d'entrée radio en utilisant ce code Javascript dans Firefox 72, dans une page d'options Web Extension pour CHARGER la valeur:
Où le code associé pour SAVE la valeur était:
Compte tenu du HTML comme suit:
la source