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<form class="formEncuesta" name="formulario" method="post" action="registrar.php"> » 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> » 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/> *
» 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/> *
» 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> <td width="400px">» Evidencias a Favor:
</td> <td width="400px">» Evidencias en Contra:
</td> <td width="400px"><textarea name="vp1" id="vp1" placeholder="Evidencias a favor" cols="40" rows="10"></textarea></td> <td width="400px"><textarea name="vn1" id="vn1" placeholder="Evidencias en contra" cols="40" rows="10"></textarea></td> <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> <input type="submit" value="Enviar"> <input type="reset" value="Limpiar">
validacion:
Código Javascript
:
Ver original// Validacion Numérica
function validarEntero(input){
return !isNaN(input)&&parseInt(input)==input;
}
//Campos valoración
function validar(campo){
var valoracion = document.getElementById(campo);
if((!validarEntero(valoracion.value))||(valoracion.value == "")||(valoracion.value <= 0)||(valoracion.value > 100)){
valoracion.value = "";
valoracion.focus();
return 0;
}
}
//Campo pregunta
function verificar(campo){
var pregunta = document.getElementById(campo);
if((!validarEntero(pregunta.value))||(pregunta.value == "")||(pregunta.value < 1)||(pregunta.value > 90)){
pregunta.value = "";
pregunta.focus();
return 0;
}
}
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.