Foros del Web » Programando para Internet » Javascript »

Comprobar formulario con varios checkbox iguales

Estas en el tema de Comprobar formulario con varios checkbox iguales en el foro de Javascript en Foros del Web. Buenas, tengo el siguiente formulario con un select (enviar), varios checkbox llamados igual (usuario) y un textbox (emails_adicionales) y quiero que si seleccionan la opción ...
  #1 (permalink)  
Antiguo 19/02/2018, 05:57
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 4 meses
Puntos: 8
Comprobar formulario con varios checkbox iguales

Buenas, tengo el siguiente formulario con un select (enviar), varios checkbox llamados igual (usuario) y un textbox (emails_adicionales) y quiero que si seleccionan la opción "Si" en el select, obligatoriamente tengan que seleccionar algun checkbox o meter un texto en el campo de texto. La cosa está en que si seleccionan el primer checkbox, la comprobación funciona sin problema, pero si seleccionan cualquiera de los otros, no lo reconoce y no deja continuar. Imagino, que al tener varios checkbox los tengo que recoger todos en un array y comprobarlo, pero ahí me pierdo un poco y estoy atascado. Os dejo lo que tengo hecho hasta ahora y a ver si alguien me puede echar una mano para rematarlo:

Comprobación:
Código Javascript:
Ver original
  1. <script language="javascript">
  2. function validar(frm) {
  3.  var ret;
  4.  var enviar = document.frm.enviar.value;
  5.  var usuario = document.getElementById("usuario").checked;
  6.  var emails_adicionales = document.frm.emails_adicionales.value;
  7. if (frm.enviar.value == 1 && (usuario==false && emails_adicionales=="")) {
  8.   alert('Si el informe se va a enviar, debe seleccionar un usuario o proporcionar un email en la casilla Emails Destinatarios');
  9.   ret = false;
  10.  }
  11.  
  12. return ret;
  13. }
  14. </script>

Formulario:
Código HTML:
Ver original
  1. <form id="frm" name="frm" method="post" action=""  onsubmit="return validar(this)">
  2.   <p>
  3.     <select name="enviar" id="enviar">
  4.       <option value="" selected="selected"> </option>
  5.  
  6.       <option value="1">Si</option>
  7.       <option value="0">No</option>
  8.     </select>
  9.     <input name="usuario" type="checkbox" id="usuario" value="1" />
  10.     <input name="usuario" type="checkbox" id="usuario" value="2" />
  11.     <input name="usuario" type="checkbox" id="usuario" value="3" />
  12.     <input name="usuario" type="checkbox" id="usuario" value="4" />
  13.     <input name="usuario" type="checkbox" id="usuario" value="5" />
  14.     <input type="text" name="emails_adicionales" id="emails_adicionales" />
  15.   </p>
  16.   <p>
  17.     <input type="submit" name="button" id="button" value="Enviar" />
  18.   </p>
  19. </form>

Gracias y salu2
__________________
Vayamos por Partes :: Jack el Destripador
  #2 (permalink)  
Antiguo 19/02/2018, 06:16
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Comprobar formulario con varios checkbox iguales

primero no puedes repetir la misma id en un mismo documento para ello te recomiendo que uses una clase
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 19/02/2018, 08:29
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 4 meses
Puntos: 8
Respuesta: Comprobar formulario con varios checkbox iguales

Así me he quedado!!
__________________
Vayamos por Partes :: Jack el Destripador
  #4 (permalink)  
Antiguo 22/02/2018, 07:29
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 9 años, 11 meses
Puntos: 11
Respuesta: Comprobar formulario con varios checkbox iguales

Que crees que va a pasar si algun dia quisieras obtener el dato de un usuario en especifico como sabes cual es cual? Los id como el nombre lo dice son una "identificacion" O.O para elementos unicos,tienes varios elementos del mismo mejor agrupalos como ya te lo recomendaron usando clases
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #5 (permalink)  
Antiguo 23/02/2018, 02:57
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 4 meses
Puntos: 8
Respuesta: Comprobar formulario con varios checkbox iguales

Es que en este caso me da igual cual seleccionen, solo quiero saber si han llegado a seleccionar alguno (el que sea) o no.
__________________
Vayamos por Partes :: Jack el Destripador
  #6 (permalink)  
Antiguo 23/02/2018, 09:26
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: Comprobar formulario con varios checkbox iguales

Hola:

No seas "cabezota"... si quieres enterarte de si han elegido un elemento, deberías tener el control sobre el mismo; y si repites el id, solo vas a controlar el primero... El evento click debe estar en todos los elementos...
También puedes repetir el atributo name; pero tienes que recorrerlos con un bucle. No vale controlar solo el primero.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 27/02/2018, 13:27
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Comprobar formulario con varios checkbox iguales

Como ya te indicaron antes, si quieres acceder a tus checkbox a través del id, no puedes usar el mismo id para todos.

Pero sí puedes recorrer los elementos del form sin necesidad del id, por ejemplo


Código Javascript:
Ver original
  1. var formulario=document.getElementById("frm");
  2. var enviar=false;
  3. for(var x=0;x<formulario.length;x++)//recorremos el form
  4.   if(formulario[x].name=='usuario' && formulario[x].checked)//si el elemento se llama usuario y está marcado
  5.      enviar=true;
  6.  
  7. if(!enviar)
  8.    return alert('Marque un checkbox');
  #8 (permalink)  
Antiguo 07/03/2018, 08:53
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 4 meses
Puntos: 8
Respuesta: Comprobar formulario con varios checkbox iguales

Ok, gracias por las respuestas, en cuanto tenga un hueco me pongo con ello, que esto lo tengo un poco aparcado!!
__________________
Vayamos por Partes :: Jack el Destripador

Etiquetas: checkbox, formulario, iguales, input, java
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 18:01.