Foros del Web » Programando para Internet » Javascript »

Validacion formulario (varios campos mismo nombre)

Estas en el tema de Validacion formulario (varios campos mismo nombre) en el foro de Javascript en Foros del Web. Hola a todos: Estoy intentando hacer una validacion de un formulario, que tiene los siguientes campos: - (2 o mas, es variable) nombreParticipanteSesion: nombre de ...
  #1 (permalink)  
Antiguo 23/09/2010, 05:18
 
Fecha de Ingreso: abril-2010
Ubicación: L'Hospitalet de LLobregat
Mensajes: 43
Antigüedad: 14 años
Puntos: 0
Pregunta Validacion formulario (varios campos mismo nombre)

Hola a todos:

Estoy intentando hacer una validacion de un formulario, que tiene los siguientes campos:

- (2 o mas, es variable) nombreParticipanteSesion: nombre de persona, un string no vacio
- tiempoSesion: tiempo, un integer mayor o igual que 10
- numP: un integer que no deseo validar ya que ya viene dado de antes

Aquí esta el código JAVASCRIPT para validarlo:

Código Javascript:
Ver original
  1. function sessionCreationOnClick(){
  2.     alert("entraaaaaaa");
  3.     if (document.myForm.tiempoSesion.value.length==0){
  4.          alert("El valor del tiempo no puede ser nulo!")
  5.          document.myForm.tiempoSesion.focus()
  6.          return 0;
  7.     }else if (document.myForm.tiempoSesion.value < 10){
  8.          alert("El numero tiene que ser mayor o igual que 10")
  9.          document.myForm.tiempoSesion.focus()
  10.          return 0;
  11.     }else if (document.myForm.nombreParticipanteSesion.value.length==0){
  12.          alert("el valor del nombre no puede ser nulo");
  13.                  document.myForm.nombreParticipanteSesion.focus()
  14.          return 0;
  15.     }
  16.     //el formulario se envia si todo ha ido bien
  17.     alert("Muchas gracias por enviar el formulario");
  18.     document.myForm.submit();
  19. }

Veo el alert de "entraaaaaaaaa" siempre, pero ningun alert mas. Incluso he intentado quitar la validación de numP (que es la que mas problemas puede dar, al haber varios con el mismo nombre que no se si se puede hacer...) pero sigue sin ir
Por lo que he leido por ahi, cuando hay varios campos con el mismo nombre javascript te crea automaticamente un array que tienes que recorrer, pero no se como hacerlo.

Muchas gracias por la ayuda!!!!!

Última edición por galorn; 23/09/2010 a las 05:24
  #2 (permalink)  
Antiguo 23/09/2010, 05:53
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Validacion formulario (varios campos mismo nombre)

Si hay varios campos con el mismo nombre tendrás que hacerlo como un array

Código HTML:
Ver original
  1. <input type="text" name="nombreParticipanteSesion[]">
Código Javascript:
Ver original
  1. document.myForm.tiempoSesion[NUMERO].value
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #3 (permalink)  
Antiguo 23/09/2010, 08:04
 
Fecha de Ingreso: abril-2010
Ubicación: L'Hospitalet de LLobregat
Mensajes: 43
Antigüedad: 14 años
Puntos: 0
Respuesta: Validacion formulario (varios campos mismo nombre)

Estoy probando con este codigo, pero creo que recorro mal el array o algo del estilo.

Código Javascript:
Ver original
  1. function sessionCreationOnClick(myForm){
  2.     alert("entraaaaaaa");
  3.     if (myForm.tiempoSesion.value.length==0){
  4.          alert("El valor no puede ser nulo!")
  5.          myForm.tiempoSesion.focus()
  6.          return false;
  7.     }else if (myForm.tiempoSesion.value < 10){
  8.          alert("El numero tiene que ser mayor o igual que 10")
  9.          myForm.tiempoSesion.focus()
  10.          return false;
  11.     }
  12.     for (int i=0; i<myForm.nombreParticipanteSesion.length; i++){
  13.         if(myForm.nombreParticipanteSesion[i].value.length==0){
  14.             alert("El valor del nombe no puede ser nulo!")
  15.             myForm.nombreParticipanteSesion[i].focus()
  16.             return false;
  17.         }
  18.     }
  19.     //el formulario se envia si todo ha ido bien
  20.     alert("Muchas gracias por enviar el formulario");
  21.     return true;
  22. }
  #4 (permalink)  
Antiguo 23/09/2010, 08:25
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Validacion formulario (varios campos mismo nombre)

En JS las variables se declaran con la palabra var, es decir var variable, o simplemente variable, aunque hay ciertas diferencias entre hacerlo de una manera y de otra. Por tanto, no sería int i, sino var i o simplemente i.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #5 (permalink)  
Antiguo 24/09/2010, 02:39
 
Fecha de Ingreso: abril-2010
Ubicación: L'Hospitalet de LLobregat
Mensajes: 43
Antigüedad: 14 años
Puntos: 0
Respuesta: Validacion formulario (varios campos mismo nombre)

Cierto xd se me ha ido la olla...
Ya he puesto var, pero me sigue sin ir. En el html lo tengo declarado en name como array tal y como me han respondido [] y luego en el javascript recorro el array para ir viendo todos y si alguno no coincide, devolver false.

Código HTML:
Ver original
  1. <input type="text" name="nombreParticipanteSesion[]">
Código Javascript:
Ver original
  1. function sessionCreationOnClick(myForm){
  2.     alert("entraaaaaaa");
  3.     if (myForm.tiempoSesion.value.length==0){
  4.                 alert("El valor no puede ser nulo!")
  5.                 myForm.tiempoSesion.focus()
  6.                 return false;
  7.     }else if (myForm.tiempoSesion.value < 10){
  8.                 alert("El numero tiene que ser mayor o igual que 10")
  9.                 myForm.tiempoSesion.focus()
  10.                 return false;
  11.     }
  12.     for (var i=0; i<myForm.nombreParticipanteSesion.length; i++){
  13.                if(myForm.nombreParticipanteSesion[i].value.length==0){
  14.                      alert("El valor del nombe no puede ser nulo!")
  15.                      myForm.nombreParticipanteSesion[i].focus()
  16.                      return false;
  17.                }
  18.         }
  19.     //el formulario se envia si todo ha ido bien
  20.     alert("Muchas gracias por enviar el formulario");
  21.     return true;
  22. }
  #6 (permalink)  
Antiguo 24/09/2010, 06:40
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Validacion formulario (varios campos mismo nombre)

Hola

Si quieres tratarlo como array asociativo, tendrás que usar getElementByNam(). Algo como esto
Código Javascript:
Ver original
  1. campo = document.getElementsByName('campo[]');
  2. for (var i in campo) {
  3. if(campo[i].value.length == 0){
  4. alert('error')
  5. return false;
  6. }
  7. }
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #7 (permalink)  
Antiguo 24/09/2010, 07:11
 
Fecha de Ingreso: junio-2010
Mensajes: 59
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: Validacion formulario (varios campos mismo nombre)

para recorrer el array se lo puede hacer también de la siguiente forma:

var elementos=document.getElementsByName("archivos[]")
for (i = 0; i < elementos.length-1 ; i++) {
alert(elementos[i].value)
}
  #8 (permalink)  
Antiguo 24/09/2010, 07:38
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Validacion formulario (varios campos mismo nombre)

Cita:
Iniciado por rodrigo_1986 Ver Mensaje
para recorrer el array se lo puede hacer también de la siguiente forma:

var elementos=document.getElementsByName("archivos[]")
for (i = 0; i < elementos.length-1 ; i++) {
alert(elementos[i].value)
}
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Etiquetas: campos, nombre, formulario
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 14:35.