Foros del Web » Programando para Internet » Javascript »

Validar un radiobutton...

Estas en el tema de Validar un radiobutton... en el foro de Javascript en Foros del Web. Buenas tardes: Mi problema es el siguiente.Estoy realizando un formulario en ASP, en el cual he incluido unos cuantos radiobutton que quiero que su seleccion ...
  #1 (permalink)  
Antiguo 17/01/2006, 11:24
 
Fecha de Ingreso: enero-2006
Mensajes: 16
Antigüedad: 18 años, 3 meses
Puntos: 0
Sonrisa Validar un radiobutton...

Buenas tardes:

Mi problema es el siguiente.Estoy realizando un formulario en ASP, en el cual he incluido unos cuantos radiobutton que quiero que su seleccion sea obligatoria, pero a su vez no quiero que salga seleccionado alguno por defecto, asi que descartemos esa opcion.Llevo todo el dia investigando y la verdad que no consigo dar con la solucion.Estoy un poco verde en esto del javascript.Se que es imposible este script en ASP, asi que toy investigando en el script en "javascript".Despues de muchas horas bicheando y muchos post leidos, hay un codigo que parece que funciona pero no del todo bien.Os cuento, yo relleno todo el formulario excepto una pregunta con radiobutton y cuando le doy a enviar......me sale el alert !!!!PEROOOOOO!!!!.....cuando le doy a aceptar al alert me pasa a la que seria la siguiente pagina y PETA!!!!.....en resumen lo que quiero esq me siga apareciendo ese mensaje, PEROOOOOO!!, cuando lo acepte no se me vaya a la siguiente pagina y se quede en la misma para que puedan completar del todo el formulario.
Este es el script que estoy utilizando:
<script language="javascript" type="text/javascript">

valor = 0
function cambia(ra)
{
valor = ra.value
}
function valida()
{
if (valor == 0) alert ("Debe ingresar un Tipo de Documento")
}
</script>

<input type="submit" name="accion" value="Grabar" onClick="valida()">


....gracias de antemano a todos y espero que podais ayudarme lo antes posible.

Un saludo
  #2 (permalink)  
Antiguo 17/01/2006, 11:54
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
]Cambia el onClick del submit por lo siguiente en la etiqueta form:

<form ... onsubmit ="return valida()">

y en el script pon
if (valor == 0){
alert ("Debe ingresar un Tipo de Documento");
return false;
}

Un saludo!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 18/01/2006, 02:54
 
Fecha de Ingreso: enero-2006
Mensajes: 16
Antigüedad: 18 años, 3 meses
Puntos: 0
Buenos dias

El codigo queda asi.....

<script language="javascript" type="text/javascript">
valor = 0
function cambia(valoracion1)
{valor = valoracion1.value}
function valida()
{if (valor == 0) alert ("Debe ingresar un Tipo de Documento");return false;}
</script>

<form onSubmit="return valida()" name="cuestionario" action="ok.asp" method="post">

<--! TODO EL CODIGO !-->

<input type="submit" name="accion" value="Grabar">
<--! intente poner este input fuera del form, pero me sale el alert, seleccione o no el radio button, con lo cual no creo que esa solucion me valga !-->
</form>

Creo que coloque bien, como tu me dijistes, pero que no hay manera, al aceptar el "alert" me sale la pagina con el error ese de los cojones.....Si se te ocurre algo mas o alguien que lea el post, se lo agredeceria.Un saludo y gracias por la atencion prestada
  #4 (permalink)  
Antiguo 18/01/2006, 03:38
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola epsilon88, bienvenido a los foros :

Bueno, no sé que error te dá (deberías indicarnoslo), pero en principio no tienes bien puesto el bloque en valida...

Con el "if" tienes que realizar 2 cosas (mostrar la alerta y cancelar el envío del formulario), así que esas 2 acciones forman un bloque y debes ponerlo entre llaves, sino ejecuta solo la primera acción (la alerta) y siempre (sin condición) se ejecuta la segunda (la cancelación)...

Supongo que en los radion tienes algo así:

<input type=radio value=0 onclick="cambia(this)" name="ra" />
<input type=radio value=1 onclick="cambia(this)" name="ra" />

Un par de recomendaciones:
Como valor es una variable global, anteponle un var:
var valor="0";

Y como los inputs suelen ser cadena de texto, entrecomíllalo:

function valida() {
if (valor == "0") {
alert ("Debe ingresar un Tipo de Documento");
return false;
}
else return true;
}

Espero que te sirva.

Saludos

__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 18/01/2006, 04:22
 
Fecha de Ingreso: enero-2006
Mensajes: 16
Antigüedad: 18 años, 3 meses
Puntos: 0
Gracias caricatos por tu rapida respuesta y tu bienvenida.El error que me da es..............Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Controlador ODBC Microsoft Access] El campo 'form.Valoracion1' no puede ser una cadena de longitud cero.
/rrhh/ok.asp, línea 28
.....................ya que tengo configurado ese campo en una BD Access para que sea obligatorio que tenga datos, de ahi viene el error, y es que necesito que contesten a los radiobutton obligatoriamente.Pero claro si se olvidan de sseleccionarlo necesito que alguien se lo recuerde........
He metido ya el codigo como me has comentado pero que no me funciona... cuando doy al boton de aceptar del alert, me sale la pagina con el error, no lo entiendo se me acaban los recursos, ya no se que hacer si te soy sincero llevo dos dias intentadolo todo, lo que hay en los foros y nada, esta situacion es desesperante.Te dejo mi codigo y le echas un vistazo:

<script language="javascript" type="text/javascript">
var valor = "0";
function cambia(valoracion1)
{valor = valoracion1.value}
function valida()
{if (valor == "0") {alert ("Debe ingresar un Tipo de Documento");return false;}else return true;}
</script>

<form onSubmit="return valida()" name="cuestionario" action="ok.asp" method="post">

<input type="radio" name="Valoracion1" value="1" onClick="cambia(this)">
<--! VA DESDE EL 1 HASTA EL 10 !-->
<input type="radio" name="Valoracion1" value="10" onClick="cambia(this)">

<input type="submit" name="accion" value="Grabar">

........Aun asi gracias de todas formas, y si se os ocurre algo mas, GRACIAS DE ANTEMANO...
  #6 (permalink)  
Antiguo 18/01/2006, 04:49
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra ves...

La verdad es que releo el tema y no logro encontrar el fallo...

De todos modos, puedes depurarlo un poco más poniendo onsubmit y onclick en minúsculas...

Aunque no te pueda dar la solución, te puedo comentar mis "truquillos" para controlar que llegan bien los datos... y es simplemente poner alertas en partes puntuales para que me muestre los valores que se mueven...

Por ejemplo: en la función cambia le pondría una alerta...

function cambia(valoracion1) {
valor = valoracion1.value;
alert(valor);
}

Bueno, si encuentras alguna mejoría o duda añadida no dudes en consultar.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 18/01/2006, 05:21
 
Fecha de Ingreso: enero-2006
Mensajes: 16
Antigüedad: 18 años, 3 meses
Puntos: 0
gracias caricatos seguire buscando por el foro haber si ecnuentro algo, que por fin me solucione el problema.Gracias!
  #8 (permalink)  
Antiguo 18/01/2006, 06:18
 
Fecha de Ingreso: marzo-2005
Mensajes: 57
Antigüedad: 19 años, 1 mes
Puntos: 0
Hola epsilon88,

Te pongo un ejemplo para que te guies:

Código PHP:
<html>

<
head>

<
script language="javascript" type="text/javascript">

function 
comprobarRadio(radio)
{
  for(
0;radio.length;i++)
  {
    if(
radio[i].checked)
    {
      return 
true;
    }
  }
  return 
false;
}

function 
enviarForm()
{
  if(!
comprobarRadio(document.form_r.Valoracion1))
  {
    
alert("Por favor, seleccione una opción.")
    return 
false;
  }

  return 
true;
}
</script>

</head

<body>


<form name="form_r" method="post" action="enviar.php" onSubmit="return enviarForm();">
<input type="radio" name="Valoracion1" value="1"> Opción 1 <br />
<input type="radio" name="Valoracion1" value="2"> Opción 2 <br />

<input type="submit" value="Enviar" />
</form>

</body>


</html> 
Saludos
__________________
Alpa cine - Películas de cine con estrenos de cartelera
Compuntoes - Como es y punto

Última edición por esteno; 08/05/2006 a las 08:05
  #9 (permalink)  
Antiguo 20/01/2010, 16:51
 
Fecha de Ingreso: junio-2008
Mensajes: 5
Antigüedad: 15 años, 11 meses
Puntos: 0
De acuerdo Respuesta: Validar un radiobutton...

Excelente!!! Gracias esteno, me sirvio full.

Muchas Gracias.
  #10 (permalink)  
Antiguo 20/01/2010, 17:00
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Validar un radiobutton...

Tema cerrado por viejo
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 09:37.