2009-10-06 7 views
1

Je suis en mesure d'utiliser ce qui suit pour obtenir la valeur du bouton radio sélectionné (de la liste des boutons radio rblReason)Comment obtenir le innerText de RadioButtonList

var reasonId = $('#rblReason').find('input[checked]').val(); 

Comment puis-je obtenir la innerText de la radio bouton sélectionné? ty

+0

Que voulez-vous? Le texte qui va avec le bouton radio? La valeur? Le nom? – voyager

Répondre

1

Un bouton radio n'a pas de innerText, c'est un élément vide. Quel est votre balisage?

Si vous avez un parent qui contient le texte:

<div> <input type="radio" name="thing" value="foo" /> Hello </div> 

Ensuite, vous pouvez utiliser:

var text= $('#rblReason input:checked').parent().text(); 

Si vous avez un élément d'étiquette associé à la radio:

<input type="radio" name="thing" value="foo" id="thing-foo" /> 
<label for="thing-foo"> Hello </label> 

alors vous pourriez faire:

var id= $('#rblReason input:checked').attr('id'); 
var text= $('label[for='+id+']').text(); 

Notez, utilisez :checked pour voir quelle case/radio est actuellement sélectionnée. [checked] signifie tester que l'élément a un attribut checked, ce qui renvoie toujours la radio initialement vérifiée indépendamment de ce que l'utilisateur a sélectionné. [Sauf dans IE, en raison d'un bug.]

+0

Merci c'était la solution que je cherchais. – David

+0

@Bobince: Et s'il y a deux boutons radio dans ce div (ss est généralement le cas)? Cela ne va pas fonctionner alors. Il renverra le texte pour ces deux articles. Des suggestions? –

+0

Marchez le DOM comme nécessaire pour tout marquage que vous avez. Par exemple, si vous avez ' du texte du texte, obtenez' input_node.nextSibling.textContent' ('innerText' pour IE). Mieux si possible: corrigez le balisage pour inclure un élément '

Questions connexes