I'm new to javascript, I try to validate my form inside the onSubmit using javascript but it does not work, as if it will not enter my last if where I compare the size of a string. Always returns true and ends sending the form thus present input problems
function validaDatos(form){
var mensaje="";
var solonumeros = /^([0-9])*$/
var sololetras = /^([A-Z]|[a-z])*$/
var doc = form.doc.value;
var apepa = form.apepa.value;
var apema = form.apema.value;
var nombre = form.nombre.value;
var telefono = form.telefono.value;
var usuario = form.usuario.value;
if(!solonumeros.test(doc)){
mensaje+="Campo Documento erróneo, solo se aceptan Números";
}
if(!sololetras.test(apepa)){
mensaje+="Campo Apellido Paterno erróneo, solo se aceptan Letras";
}
if(!sololetras.test(apema)){
mensaje+="Campo Apellido Materno erróneo, solo se aceptan Letras";
}
if(!sololetras.test(nombre)){
mensaje+="Campo Nombre erróneo, solo se aceptan Letras <br>";
}
if(!solonumeros.test(telefono)){
mensaje+="Campo Teléfono, solo se aceptan Números ";
}
if(!solonumeros.test(usuario) && !sololetras.test(usuario)){
mensaje+="Campo Usuario , Solo se Acepta Números y Letras";
}
alert(mensaje.length); //return > 0
/* No compare , no return false */
if(mensaje.length !=0){
document.getElementByClassName('msgerror').innerHTML = mensaje;
return false;
}
}
<form action="Models/clsUsuario.php" method="POST" accept-charset="utf-8" id="frmRegistro" onsubmit="return validaDatos(this);">
<label for="">Documento </label>
<input type="text" id="doc" name="doc" required maxlength="11">
<label for="">Apellido P.</label>
<input type="text" id="apepa" name="apepa" required maxlength="80">
<label for="">Apellido M.</label>
<input type="text" id="apema" name="apema" required maxlength="80">
<label for="">Nombres </label>
<input type="text" id="nombre" name="nombre" required maxlength="80">
<label for="">Email : </label>
<input type="email" id="email" name="email" required>
<label for="">Teléfono : </label>
<input type="tel" id="telefono" name="telefono" required>
<label for="">Usuario </label>
<input type="text" id="usuario" name="usuario" required>
<label for="">Clave </label>
<input type="password" id="clave" name="clave" required>
<label for="">Dirección : </label>
<textarea name="direccion" id="direccion" required></textarea>
<input type="hidden" name="registrar" value="registrar">
<input type="submit" name="registrar" value="Registro" >
<span class="msgerror"></span>
</form>
Sorry if my programming language (variables and messages) is not English. Before the if, I show the length of the message variable, but I should enter the if more it does not.
alert(mensaje.length)useconsole.log(mensaje.length)and look for error messages in the console (on windows, press F12 in chrome or firefox, might be different in other browsers or platforms)preserver logand you will see that you get an error because you are trying to use a function that doesn't exists:getElementByClassName. There is a function calledgetElementsByClassName.