Ver Mensaje Individual
  #6 (permalink)  
Antiguo 28/05/2012, 09:23
alexg88
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 6 meses
Puntos: 344
Respuesta: Formulario siempre envia

Es sencillo, sólo tienes que poner lo siguiente (fíjate en el return, es imprescindible)

Código HTML:
Ver original
  1. <form action="registrar.php" class="formEncuesta" name="formulario" method="post" onsubmit="return validar()">
  2. ...
  3. </form>

La función validar debe ser una función que devuelva verdadero si se puede enviar el formulario y falso si no.

Ten en cuenta que la función validar que has hecho es incorrecta, no tiene sentido que declares la funciones dentro de la función validar, se tienen que declarar fuera.

Puede ser algo así (lo he hecho rápido así que verificalo):

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

Te paso un enlace que explican algunas cosas de validaciones sencillas: http://www.elcodigo.net/tutoriales/j...vanzado13.html

Saludos.