Foros del Web » Programando para Internet » Javascript »

Radio Button

Estas en el tema de Radio Button en el foro de Javascript en Foros del Web. Ante todo felicitarlos a todos ya que este es mi primer post. tengo un formulario en el cual aparecen nombres,a esos nombres quiero darles una ...
  #1 (permalink)  
Antiguo 04/01/2007, 05:41
 
Fecha de Ingreso: enero-2007
Mensajes: 5
Antigüedad: 18 años
Puntos: 0
Radio Button

Ante todo felicitarlos a todos ya que este es mi primer post.

tengo un formulario en el cual aparecen nombres,a esos nombres quiero darles una prioridad por lo tanto por cada nombre tengo tantos radio button como nombres. Lo que deseo es que si selecciono el uno para el primer nombre no pueda seleccionarlo en el resto de nombres y así con todos. por lo tanto tendré un cuadrado y quiero que lo mismo que hace el radio buton horizontalmente lo haga verticalmente. Bueno no se si me he explicado bien.


Muchas gracias de Antemano.
  #2 (permalink)  
Antiguo 04/01/2007, 06:45
 
Fecha de Ingreso: enero-2007
Mensajes: 5
Antigüedad: 18 años
Puntos: 0
Re: Radio Button

Perdón lo puse 2 veces booro una

Última edición por davidonet; 04/01/2007 a las 07:10
  #3 (permalink)  
Antiguo 04/01/2007, 06:47
 
Fecha de Ingreso: enero-2007
Mensajes: 5
Antigüedad: 18 años
Puntos: 0
Re: Radio Button

Cita:
Iniciado por davidonet Ver Mensaje
Bueno hasta la fecha tengo hecho esto, comentar que no soy muy bueno (por no decir ni idea) de javascript.

<script>
function deshabilitar(formulario,nombre,idradio){
if (document.formulario.nombre[idradio].checked = true){
var i;
for (i=0;i<=<?=$registros?>;i++) {
if(i!=nombre){
document.formulario.i[idradio].blur();
}
}
}
}
</script>

y el formulario es este por ejemplo con 3 nombres:

<form name="prefer" method="post" action="intro.php">
<input name="a1" type="radio" onclick="deshabilitar(this.form,1,1)" value="1"/>
<input name="a1" type="radio" onclick="deshabilitar(this.form,1,2)" value="2"/>
<input name="a1" type="radio" onclick="deshabilitar(this.form,1,3)" value="3"/>
<input name="a1" type="radio" onclick="deshabilitar(this.form,1,4)" value="4"/>
<input name="a1" type="radio" onclick="deshabilitar(this.form,1,5)" value="5"/>

<input name="a2" type="radio" onclick="deshabilitar(this.form,2,1)" value="1"/>
<input name="a2" type="radio" onclick="deshabilitar(this.form,2,2)" value="2"/>
<input name="a2" type="radio" onclick="deshabilitar(this.form,2,3)" value="3"/>
<input name="a2" type="radio" onclick="deshabilitar(this.form,2,4)" value="4"/>
<input name="a2" type="radio" onclick="deshabilitar(this.form,2,5)" value="5"/>

<input name="a3" type="radio" onclick="deshabilitar(this.form,3,1)" value="1"/>
<input name="a3" type="radio" onclick="deshabilitar(this.form,3,2)" value="2"/>
<input name="a3" type="radio" onclick="deshabilitar(this.form,3,3)" value="3"/>
<input name="a3" type="radio" onclick="deshabilitar(this.form,3,4)" value="4"/>
<input name="a3" type="radio" onclick="deshabilitar(this.form,3,5)" value="5"/>
</form>


pero no hay manera sniff!!!
  #4 (permalink)  
Antiguo 04/01/2007, 08:28
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 10 meses
Puntos: 772
Re: Radio Button

Hola davidonet

Prueba este código:

Código PHP:
<html>
<
head>
<
script type="text/javascript">
function 
deshabilitar(obj) {
  
numRadios 3;
  
num obj.name.substr(1,1);
  
anterior document.forms[0]['h'+num].value
  
// habilitar radiobutons si ya había otro seleccionado en la misma fila
  
if (anterior != '') {
    for (
i=1i<numRadios+1i++) {
      for (
j=0rad=document.getElementsByName('a'+i)[j]; j++)
        if (
rad.value==anteriorrad.disabled false;
    }
  }
  
// deshabilitar radiobuttons con el mismo valor
  
for (i=1i<numRadios+1i++) {
    if (
i==num) continue;
    for (
j=0rad=document.getElementsByName('a'+i)[j]; j++) 
      if (
rad.value==obj.valuerad.disabled true;
  }
  
document.forms[0]['h'+num].value obj.value;
}
</script>
</head>
<body>
<form name="prefer" method="post" action="intro.php">
<input name="a1" type="radio" onclick="deshabilitar(this)" value="1"/>
<input name="a1" type="radio" onclick="deshabilitar(this)" value="2"/>
<input name="a1" type="radio" onclick="deshabilitar(this)" value="3"/>
<input name="a1" type="radio" onclick="deshabilitar(this)" value="4"/>
<input name="a1" type="radio" onclick="deshabilitar(this)" value="5"/>
<input type="hidden" name="h1" /><br />

<input name="a2" type="radio" onclick="deshabilitar(this)" value="1"/>
<input name="a2" type="radio" onclick="deshabilitar(this)" value="2"/>
<input name="a2" type="radio" onclick="deshabilitar(this)" value="3"/>
<input name="a2" type="radio" onclick="deshabilitar(this)" value="4"/>
<input name="a2" type="radio" onclick="deshabilitar(this)" value="5"/>
<input type="hidden" name="h2" /><br />

<input name="a3" type="radio" onclick="deshabilitar(this)" value="1"/>
<input name="a3" type="radio" onclick="deshabilitar(this)" value="2"/>
<input name="a3" type="radio" onclick="deshabilitar(this)" value="3"/>
<input name="a3" type="radio" onclick="deshabilitar(this)" value="4"/>
<input name="a3" type="radio" onclick="deshabilitar(this)" value="5"/>
<input type="hidden" name="h3" /><br />
</form>
</body>
</html> 
Saludos,
  #5 (permalink)  
Antiguo 05/01/2007, 03:02
 
Fecha de Ingreso: enero-2007
Mensajes: 5
Antigüedad: 18 años
Puntos: 0
Re: Radio Button

Muchas Gracias, funciona casi perfectamente, el problema es que no hay manera de resetearlo, en firefox ni recargando la página. A ver si doy con ello, de resto está muy bien, Gracias de nuevo
  #6 (permalink)  
Antiguo 05/01/2007, 03:51
 
Fecha de Ingreso: enero-2007
Mensajes: 5
Antigüedad: 18 años
Puntos: 0
Re: Radio Button

Bueno lo he resuelto con esta función.

function habilitartodo(){
numRadios = 3;
for (i=1; i<numRadios+1; i++) {
for (j=0; rad=document.getElementsByName('a'+i)[j]; j++)
rad.disabled = false;
}
}

Gracias JavierB

Última edición por davidonet; 05/01/2007 a las 03:51 Razón: corregir codigo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:40.