2010-07-09 15 views
13

Tengo algunos botones de opción que pertenecen a la misma categoría, pero quiero nombrarlos de manera diferente y hacerlos mutuamente exclusivos. ¿Cómo puedo hacer eso? En función del valor seleccionado, realizo diferentes acciones y no puedo acceder a ellas si tienen el mismo nombre.¿Cómo puedo crear botones de radio mutuamente exclusivos con diferentes nombres?

+0

Si necesita diferentes nombres que tendrá que cambiar el nombre de la radio a presentar de la forma. –

Respuesta

21

¿Por qué no puedes acceder a ellos si tienen el mismo nombre? Puede agregar IDs (debe), puede distinguir por valor o simplemente contarlas y usar el n-ésimo elemento.

Usted debe dar a los botones de radio el mismo nombre para que el navegador entienda que son exclusivos.

Podrías (pero no deberías) hackear esto y dar a cada objeto un nombre diferente. A continuación, agregue un controlador onSelect/onClick para cada objeto, y cuando el evento se active, "desmarque" los otros botones. Esto es sucio y debe evitarse.

+0

Como quiero realizar una acción diferente, según el valor seleccionado. El código de acción está escrito en Java. – yogsma

+1

Bueno, ¿por qué no mirar el valor del parámetro en su código Java y usarlo para decidir qué hacer? – Pointy

+0

Sí, eso es lo que hice finalmente. – yogsma

14

Los botones de opción requieren el mismo nombre para ser mutuamente excluyentes. Sin embargo, pueden tener diferentes valores de atributo de ID, si desea manipularlos individualmente con JavaScript.

Hay un montón de maneras de obtener el valor seleccionado con 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 tiene que cambiar el nombre, se puede acceder al DOM y es a través de elementos 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

Cuestiones relacionadas