2010-07-09 4 views
13

J'ai quelques boutons radio qui appartiennent à la même catégorie, mais je veux les nommer différemment et les rendre mutuellement exclusifs. Comment je fais ça? En fonction de la valeur sélectionnée, je fais différentes actions, et je ne peux pas y accéder si elles ont le même nom. Pourquoi ne pouvez-vous pas y accéder s'ils portent le même nom?Comment créer des boutons radio mutuellement exclusifs avec des noms différents?

+0

Si vous avez besoin des noms différents, vous devrez modifier le nom de la radio sur soumettre du formulaire. –

Répondre

21

Pourquoi ne pas y accéder? Vous pouvez ajouter des ID (vous devriez), vous pouvez les distinguer par valeur ou simplement les compter et utiliser le n-ème élément.

Vous devez donner radiobuttons le même nom pour rendre le navigateur comprendre qu'ils sont exclusifs.

Vous pouvez (mais ne devez pas) pirater ceci, et donner à chaque objet un nom différent. Ajoutez ensuite un gestionnaire onSelect/onClick pour chaque objet, et lorsque l'événement se déclenche, décochez les autres boutons. C'est sale et devrait être évité.

+0

Comme je veux effectuer une action différente, basée sur la valeur sélectionnée. Le code d'action est écrit en Java. – yogsma

+1

Eh bien, pourquoi ne pas regarder la valeur du paramètre dans votre code Java et l'utiliser pour décider quoi faire? – Pointy

+0

Oui, c'est ce que j'ai fait finalement. – yogsma

14

Les boutons radio nécessitent le même nom pour s'exclure mutuellement. Cependant, ils peuvent avoir différentes valeurs d'attributs d'ID, si vous souhaitez les manipuler individuellement avec JavaScript.

Il y a beaucoup de façons d'obtenir la valeur sélectionnée avec jQuery:

<input type="radio" name="foo" value="1" /> 
<input type="radio" name="foo" value="2" /> 


// value of checked input tag of type 'radio' 
var selectedValue = $('input[type=radio]:checked').val(); 

// value of checked input tag having name of 'foo' 
var selectedValue = $('input[name=foo]:checked').val(); 

// value of the first checked radio button, regardless of name 
var selectedValue = $('input:checked').val(); 
0

Si vous devez changer le nom, vous pouvez accéder aux DOM et il est des éléments par le biais de JavaScript.

<input type="checkbox" name="X" id="myElement" /> 

<script> document.getElementById('myElement').name = 'text'; </script> 

http://www.w3schools.com/JS/js_ex_dom.asp

Questions connexes