En JavaScript, comment puis-je obtenir tous les boutons radio dans la page avec un nom donné?
Comme le dit le titre, quelle est la meilleure façon de JavaScript pour obtenir tous les boutons radio sur une page avec un nom donné. En fin de compte je vais l'utiliser pour déterminer le bouton radio est sélectionné, donc, une autre façon de formuler la question:
Donné une variable chaîne de caractères en JavaScript, comment puis-je savoir ce qui exact radio bouton de l'élément d'entrée (le cas échéant) de cette chaîne, comme son nom l'est actuellement sélectionné?
Je suis pas à l'aide de jQuery. Si vous souhaitez fournir un jQuery réponse, aller de l'avant. Quelqu'un d'autre pourrait trouver utile. Mais il ne m'aide pas et je ne vais pas upvote.
source d'informationauteur Joel Coehoorn
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
document.getElementsByName()
en passant le nom de la radio du groupe, puis la boucle au-dessus d'eux l'inspection de l'checked
attribut, par exemple quelque chose comme:Utilisation document.getElementsByName() est la réponse courte à la question que vous avez posée.
Cependant, il peut être mieux de faire quelque chose comme ceci:
Puis utiliser le JavaScript:
En faisant cela, vous éviter d'avoir à utiliser une fonction qui recherche dans l'ensemble du document. Il vient de recherche tout d'abord la forme, puis à l'intérieur de cette forme pour les contrôles du même nom. Le problème ici est que si vous avez une case à cocher dans le milieu de l'écran avec le même nom, il pourrait être renvoyée à la place de la radio correct de la valeur. Si un autre type de contrôle a été lancé avec le même nom, alors il peut causer une erreur. Deux de ces circonstances doit probablement être considérée comme programmeur d'erreur, mais il ne serait pas mal pour que la fonction puisse être étendu à vérifier pour eux, à un certain potentiel de perte de performance. Il suffit de changer la ligne:
:
getElementsByName ne fonctionne pas pour moi. Je l'ai fait:
Je vais mordre pour le jQuery réponse
Pour obtenir tous les boutons radio directement par leur nom:
La
querySelectorAll()
méthode peut être utilisée pour obtenir les éléments d'un certain type par son nom. Il y a des avantages à utiliserquerySelectorAll
par rapport àgetElementsByName()
dans certaines situations. Si vous utilisezgetElementsByName
sur autre chose quedocument
vous obtiendrez un message d'erreur:Mais
querySelectorAll()
peut être utilisé sur les sous-éléments du document. Cette fonction est utile lorsque vous souhaitez obtenir un élément de multiples éléments qui ont tous la même structure (nombre de Lignes dans une liste). Dans ce cas, vous pourriez ne pas vouloir essayer d'attribuer l'ID à chaque ligne. Dans cette situation, la fonction appelée peut être passéthis
obtenir le parentNode et de la mère, à la recherche d'un attribut spécifique. Cela évite d'avoir à les rechercher l'ensemble du document.html
script