2011-11-02 14 views
8
<input checked=checked type="radio" name="colors" value="red" />Red 
<input type="radio" name="colors" value="green" />Green 
<input type="radio" name="colors" value="blue" />Blue 

Teniendo en cuenta lo anterior, me puse el botón rojo para ser seleccionado por defecto (así que le doy el atributo checked=checked. Con esto, si alguna vez llamo .checked en ese elemento de entrada, siempre devolverá true, incluso si otro se selecciona la opción¿Cómo encontrar el valor de un botón de opción con javascript puro?

en JavaScript sin formato (sin jQuery), ¿cómo se puede conseguir la opción seleccionada real

+0

posible duplicado de [Cómo consigo el valor de un botón de opción con javascript] (http://stackoverflow.com/questions/3778206/how-to-i-get-the-value-of-a-radio-button-with-javascript) –

Respuesta

7

Prueba esto:

var options = document.getElementsByName("colors"); 
if (options) { 
    for (var i = 0; i < options.length; i++) { 
     if (options[i].checked){ 
      alert(options[i].value); 
     } 
    } 
} 

sería tan mucho más fácil con jQuery aunque ... simplemente diciendo.

+0

esto es básicamente lo que estoy haciendo ahora, pero como dije, el .c hecked siempre devuelve verdadero para el elemento de entrada rojo, ya que se estableció explícitamente con checked = checked cuando se creó, aunque se seleccionó otra opción desde entonces –

+0

¿Por qué está incumpliendo las opciones para marcar? –

+0

en este caso, el rojo debe verificarse por defecto. ¿Hay otra forma de evitar esto? –

1

creo que va a encontrar en la colección document.all:.?

var selectedColor = document.all["colors"]; 
0

Bueno, todos tienen el mismo nombre. Por lo tanto, naturalmente, al menos uno de ellos debe ser seleccionado. Dales diferentes ID y vuelve a intentarlo.

0

se puede tratar como esto .....

Esto es ejemplo

<form name="frmRadio" method="post"> 
<input name="choice" value="1" type="radio" />1 
<input name="choice" value="2" type="radio" />2 
<input name="choice" value="3" type="radio" />3 
<input name="choice" value="4" type="radio" />4 
</form> 

función para obtener el valor seleccionado

<script language="JavaScript"> 

    function getRadioValue() { 
     for (index=0; index < document.frmRadio.choice.length; index++) { 
      if (document.frmRadio.choice[index].checked) { 
       var radioValue = document.frmRadio.choice[index].value; 
       break; 
      } 
     } 
    } 

</script> 
Cuestiones relacionadas