Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/05/2012, 04:15
Avatar de oNefl0w189
oNefl0w189
 
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 117
Antigüedad: 14 años, 1 mes
Puntos: 4
Formulario siempre envia

Bueno, supongo que con el título ya sabréis de que va el tema, el caso es que tengo un formulario, el cual valido con Javascript, y como es obvio si la validación no es positiva, no debería enviarse el formulario.

Es decir, que si los campos estan vacios no debería enviarseel form, pero si lo hace.

formulario
Código HTML:
Ver original
  1. <form class="formEncuesta" name="formulario" method="post" action="registrar.php">
  2.     <fieldset>
  3.         <legend> * Cuestionario * </legend>
  4.             <ul>
  5.             <li>
  6.                 » Numero de Pregunta: <input type="number" size="50" min="1" max="90" name="pregunta" id="pregunta" placeholder="Introduce el número de la pregunta" onChange="verificar(this.id);" required/> * <br> <br>
  7.             </li>
  8.             <li>
  9.                 » Nota del Evaluador 1: <input type="number" size="50" min="0" max="100" name="evaluador1" id="evaluador1" placeholder ="Introduce Calificación Evaluador 1" onChange="validar(this.id);" required/> *
  10.             </li>
  11.             <li>
  12.                 » Nota del Evaluador 2: <input type="number" size="50" min="0" max="100" name="evaluador2" id="evaluador2" placeholder ="Introduce Calificación Evaluador 2" onChange="validar(this.id);" required/> *
  13.             </li>
  14.             <li>
  15.                 » Nota del Evaluador 3: <input type="number" size="50" min="0" max="100" name="evaluador3" id="evaluador3" placeholder ="Introduce Calificación Evaluador 3" onChange="validar(this.id);" required/> *<br><br>
  16.             </li>
  17.             <li>
  18.             <table>
  19.                 <tr>
  20.                     <td width="400px">» Evidencias a Favor:</td>
  21.                     <td width="400px">» Evidencias en Contra: </td>
  22.                 </tr>
  23.                 <tr>
  24.                     <td width="400px"><textarea name="vp1" id="vp1" placeholder="Evidencias a favor" cols="40" rows="10"></textarea></td>
  25.                     <td width="400px"><textarea name="vn1" id="vn1" placeholder="Evidencias en contra" cols="40" rows="10"></textarea></td>
  26.                 </tr>
  27.             </table>
  28.             </li><br>
  29.             <li><i>* Solo podrás contestar las preguntas que no hayan sido contestadas. Consulta cual han sido contestadas <a href="contestadas.php" target="blank">AQUÍ</a>.</i></li>
  30.             <br><br>
  31.     </fieldset>
  32.     <br>
  33.     <input type="submit" value="Enviar">  <input type="reset" value="Limpiar">
  34.     </form>

validacion:
Código Javascript:
Ver original
  1. //  Validacion Numérica
  2.  
  3. function validarEntero(input){
  4. return !isNaN(input)&&parseInt(input)==input;
  5. }
  6.  
  7.  
  8. //Campos valoración
  9.  
  10. function validar(campo){
  11. var valoracion = document.getElementById(campo);  
  12. if((!validarEntero(valoracion.value))||(valoracion.value == "")||(valoracion.value <= 0)||(valoracion.value > 100)){
  13. valoracion.value = "";
  14. valoracion.focus();
  15. return 0;
  16. }
  17. }
  18.  
  19.  
  20. //Campo pregunta
  21.  
  22. function verificar(campo){
  23. var pregunta = document.getElementById(campo);
  24. if((!validarEntero(pregunta.value))||(pregunta.value == "")||(pregunta.value < 1)||(pregunta.value > 90)){
  25. pregunta.value = "";
  26. pregunta.focus();
  27. return 0;
  28. }
  29.  
  30. }


Comprueba varias cosas, entre ellas que el valor no sea "" (es decir, vacío), pero el caso es que, aunque sí que funciona la validación (pues por ejemplo no te deja poner un 0), el formulario se envía si lo dejas vacío.


Que problema hay? Porque se envía si los campos están vacíos? :S
No debería enviarse, para eso le pongo el return 0; (también he probado con return false; y nada..)



Un saludo y muchas gracias compañeros.
__________________
Nunca dijeron que la vida sería fácil, sólo prometieron que valdría la pena vivirla.

Dar las gracias y añadir Karma, no cuesta nada, ¿Que menos si te ayudan? :)