Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Solo ejecuta un script de comprobación de formulario

Estas en el tema de Solo ejecuta un script de comprobación de formulario en el foro de Javascript en Foros del Web. Hola, tengo una página con dos formularios. En uno el usuario puede cambiar su contraseña y en el otro sus datos personales. He metido un ...
  #1 (permalink)  
Antiguo 12/01/2015, 04:33
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 22 años
Puntos: 8
Solo ejecuta un script de comprobación de formulario

Hola, tengo una página con dos formularios. En uno el usuario puede cambiar su contraseña y en el otro sus datos personales. He metido un par de scripts para comprobar que en el caso de los datos personales rellene todos los datos y en el caso de cambio de contraseña compruebe que pone algo en el campo de "contraseña actual", coinciden la nueva contraseña con el campo de verificación y tenga al menos seis caracteres. La cosa es que cuando envío el formulario de los datos personales no hay problema, comprueba que todo está relleno y de no ser así saca un alert.
Sin embargo si envío el formulario del cambio de contraseña, pasa olímpicamente de comprobar nada. Da igual lo que ponga en los campos, siempre se ejecuta. He comprobado que la llamada al script la hace bien, ya que si pongo un alert nada más entrar al script, me lo saca por pantalla, pero después no hace pin las comprobaciones que hay. El código de los scripts y los formularios es el siguiente:

Código Javascript:
Ver original
  1. <script language="javascript">  
  2.  
  3. function validar2(form2) {
  4.  var ret;
  5.  if (form2.empresa.value == "" || form2.cif.value == "" || form2.nombre.value == "" || form2.apellidos.value == "" || form2.telefono.value == "" || form2.telefono.value == "") {
  6.   alert('Por favor, rellene todos los campos');
  7.   ret = false;
  8.  }
  9. return ret;
  10. }
  11.  
  12. function validar(form1) {
  13.  var ret2;
  14.   alert('ENTRO AL SCRIPT');
  15.   if (form1.pss-actual.value.length == "") {
  16.   alert('Debe proporcionar la clave actual para poder cambiarla');
  17.   ret2 = false;
  18.  }
  19.  if (form1.pss-nueva.value.length < 6) {
  20.   alert('La clave debe tener como mínimo seis caracteres');
  21.   ret2 = false;
  22.  }
  23.  if (form1.pss-nueva.value != form1.pss-confirmar.value) {
  24.   alert('Por favor, revise la nueva clave. No coincide con el campo de verificacion');
  25.   ret2 = false;
  26.  }
  27. return ret2;
  28. }
  29. </script>

Código HTML:
Ver original
  1. <h1>Mi cuenta</h1>
  2. <form name="form1" method="post" action="" onSubmit="return validar(this)">
  3. <p id="izq-prensa"><b>Cambiar contraseña</b></p>
  4. <p><br>
  5.   <input name="pss-actual" type="password" id="campos-solicitud" placeholder="Contraseña actual">
  6.   <input name="enviado" type="hidden" id="enviado" value="1">
  7.   <input name="opcion" type="hidden" id="opcion" value="1">
  8.   <input name="pss-nueva" type="password" id="campos-solicitud" placeholder="Nueva contraseña">
  9.   <input name="pss-confirmar" type="password" id="campos-solicitud" placeholder="Confirmar contraseña">
  10.    <br>   <input name="enviar" type="submit" id="enviar" title="enviar" value="enviar">
  11. </p>
  12. </form>
  13. <div id="divisoria"></div>
  14.  
  15. <h4>Datos personales</h4>
  16.  
  17. <form name="form2" method="post" action=""  onSubmit="return validar2(this)">
  18.   <p>
  19.       <input name="nombre" type="text" id="campos-solicitud" value="<%=usuario("nombre")%>" placeholder="Nombre">
  20.       <input name="enviado" type="hidden" id="enviado" value="1">
  21.       <input name="opcion" type="hidden" id="opcion" value="2">
  22.       <input name="apellidos" type="text" id="campos-solicitud" value="<%=usuario("apellidos")%>" placeholder="Apellidos">
  23.       <input name="empresa" type="text" id="campos-solicitud" value="<%=usuario("empresa")%>" placeholder="Empresa">
  24.       <input name="cif" type="text" id="campos-solicitud" value="<%=usuario("cifempresa")%>" placeholder="CIF">
  25.       <input name="telefono" type="text" id="campos-solicitud" value="<%=usuario("telefono")%>" placeholder="Teléfono">
  26.       <br>
  27.       <input name="enviar2" type="submit" id="enviar" title="enviar" value="enviar">
  28.   *todos los campos son obligatorios </p>
  29. </form>
  30. <p>&nbsp;</p>

¿Alguna idea de por que está pasando esto? Imagino que al final será alguna chorrada, pero yo no la veo

Salu2
__________________
Vayamos por Partes :: Jack el Destripador
  #2 (permalink)  
Antiguo 12/01/2015, 04:39
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 22 años
Puntos: 8
Respuesta: Solo ejecuta un script de comprobación de formulario

Pues ya he encontrado el error. Resulta que si el nombre del campo tiene un guion "-" en medio, javascript no lo interpreta bien. Lo he cambiado a un guión bajo "_" y solucionado!!!
__________________
Vayamos por Partes :: Jack el Destripador

Etiquetas: ejecuta, formulario, 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 10:41.