Foros del Web » Programando para Internet » Javascript »

Porque falla "checked" en javascript?

Estas en el tema de Porque falla "checked" en javascript? en el foro de Javascript en Foros del Web. Hola! Estoy intentando hacer que un input del tipo radio sea obligatorio en el formulario, he estado buscando en el foro y google y he ...
  #1 (permalink)  
Antiguo 03/02/2015, 07:17
Avatar de maiksix  
Fecha de Ingreso: noviembre-2014
Ubicación: Sabadell
Mensajes: 124
Antigüedad: 10 años
Puntos: 1
Porque falla "checked" en javascript?

Hola!

Estoy intentando hacer que un input del tipo radio sea obligatorio en el formulario, he estado buscando en el foro y google y he encontrado algunos ejemplos.

He hecho la siguiente condición dentro de un script lleno de condiciones que sacan alertas en función del fallo:

Código:
if(document.formulario.Categoria.checked){
}else{
alert("El campo categoria está vacio");
return false;
}
No se porque no funciona, concretamente el input radio es este:

Código:
 <table style="width:1024">

                <td style="width:auto; height:50px;border: black 0px solid;"><center><font size='6'; font color='white'><br><b>Alevín</b></center><br><center><input style="margin-top:-20px;"  id="Categoria" onclick="toggle(this)"  size="40" type="radio" name="Categoria" value="Alevin" ></center><br></font></td> 
                <td style="width:auto; height:50px;border: black 0px solid;"><center><font size='6'; font color='white'><br><b>Cadete</b></center><br><center><input style="margin-top:-20px;"  id="Categoria"  onclick="toggle(this)"  size="40" type="radio" name="Categoria" value="Cadete" ></center><br></font></td>
                <td style="width:auto; height:50px;border: black 0px solid;"><center><font size='6'; font color='white'><br><b>Junior</b></center><br><center><input style="margin-top:-20px;" id="Categoria" onclick="toggle(this)"  size="40" type="radio" name="Categoria" value="Junior" ></center><br></font></td>
                <td style="width:auto; height:50px;border: black 0px solid;"><center><font size='6'; font color='white'><br><b>Senior</b></center><br><center><input style="margin-top:-20px;" id="Categoria"  onclick="toggle(this)"   size="40" type="radio" name="Categoria" value="Senior" ></center><br></font></td>
                <td style="width:auto; height:50px;border: black 0px solid;"><center><font size='6'; font color='white'><br><b>Senior-KZ2</b></center><br><center><input style="margin-top:-20px;" id="Categoria" onclick="toggle(this)" size="40" type="radio" name="Categoria" value="Senior-KZ2"></center><br></font></td>
        </table>
La función que llaman al hacer click en el input no es la que está el script que he subido aquí, es otra función diferente.

Muchas gracias! Un saludo
__________________
Going hard for too long... Can't get enough
  #2 (permalink)  
Antiguo 03/02/2015, 09:53
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Porque falla "checked" en javascript?

Si deseas que un campo del formulario sea obligatorio, añádele el atributo required.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 03/02/2015, 10:10
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: Porque falla "checked" en javascript?

Hola:

Los radios suelen ser más de uno (sería incomprensible de otra manera), y por lo que veo repites id, cosa no permitida, y lo permitido (y aconsejable), que cumple tu código es repetir el nombre (name)... pero en tal caso se usa un índice, que no veo que estés contemplando)...

Sobre el código, son obsoletas las etiquetas center y font... los id no deben repetirse...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 03/02/2015, 10:39
Avatar de maiksix  
Fecha de Ingreso: noviembre-2014
Ubicación: Sabadell
Mensajes: 124
Antigüedad: 10 años
Puntos: 1
Respuesta: Porque falla "checked" en javascript?

Hola!

Gracias por vuestra ayuda.

Alexis, he añadido el atributo required pero en safari no salta el aviso, porque según he visto no es compatible.

Caricatos tienes razón con lo del id, lo borrare, porque además era para una prueba.

Si center y font son obsoletas que debo usar para sustituirlas?

Probare de añadir un for evaluando un índice, a ver si funciona. Os comento luego.

Gracias.
__________________
Going hard for too long... Can't get enough
  #5 (permalink)  
Antiguo 03/02/2015, 11:45
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Porque falla "checked" en javascript?

Cita:
Iniciado por maiksix Ver Mensaje
Si center y font son obsoletas que debo usar para sustituirlas?
CSS.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 03/02/2015, 14:48
Avatar de maiksix  
Fecha de Ingreso: noviembre-2014
Ubicación: Sabadell
Mensajes: 124
Antigüedad: 10 años
Puntos: 1
Respuesta: Porque falla "checked" en javascript?

Gracias Alexis.

He probado de añadir un índice cómo ha dicho caricatos.

Este es el código:

Código:
var a = 0; 
var rdbtn=document.getElementsByName("Categoria");
for(i=0;i<rdbtn.length;i++) {
if(rdbtn[i].checked == false) {
a++;
}
}

if(a == rdbtn.length){
	alert(El campo categoria esta vacio. Por favor rellenalo);
	return false;
}
Ahora sigue sin funcionar y además me anula el resto de la función, es decir, debajo del último if, tengo otras condiciones para evaluar otros campos y sacar diferentes alertas que funcionan perfectamente, pero al añadir esto al código no salta ninguna, ni las que funcionan....

¿Alguna sugerencia?

Gracias, un saludo!
__________________
Going hard for too long... Can't get enough
  #7 (permalink)  
Antiguo 04/02/2015, 11:54
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Porque falla "checked" en javascript?

Se anula el resto de instrucciones de la función pues el return genera eso. Creo que tiene sentido, es decir, si algo no está bien, lo recomendable sería corregirlo antes de seguir evaluando el resto. Otra opción que puedes considerar es agregar elementos <label> o <span> al costado de cada campo y cuando alguno esté incompleto, en lugar de mostrar la alerta y cortar la función, muestras un mensaje en cada <label> o <span> (el que elijas).

EJEMPLO

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #8 (permalink)  
Antiguo 05/02/2015, 05:21
Avatar de maiksix  
Fecha de Ingreso: noviembre-2014
Ubicación: Sabadell
Mensajes: 124
Antigüedad: 10 años
Puntos: 1
Respuesta: Porque falla "checked" en javascript?

Gracias Alexis, tienes razón con lo del return, pero aún así no muestra la alerta y no entiendo porque.

Creo que el bucle y todo está bien hecho, ¿no? ¿Alguna idea?

Lo del label me ha gustado. Me lo mirare más a fondo y veré que hacer.

Gracias y un saludo!
__________________
Going hard for too long... Can't get enough

Etiquetas: checked, falla, formulario, funcion, input
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 07:05.