Intentaré echarte una mano para que entiendas mejor el javascript
Código Javascript
:
Ver original// JavaScript Document
function validarEmail( email ) {
expr = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
if ( !expr.test(email) )
return false;
else
return true;
}
function validarusuarioalta() {
const emailInput = document.forminsertar.strEmail;
//Si el campo de texto del e-mail no posee contenido
if ( !emailInput.value ){
$( "#errorE-mail" ).show( "slow" );
return false; // Detenemos la función en este punto
}
//Se evalúa su formato. Si no es válido, se muestra el mensaje de error respectivo
if ( !validarEmail( emailInput.value )){
$( "#erroremailreal" ).show( "slow" );
return false; // Esto detiene la función en este punto
}
$( "#errorPassword" ).hide( "slow" );
if ( !document.forminsertar.strPassword.value ){
$( "#errorPassword" ).show( "slow" );
return false; // Esto detiene la función en este punto
}
$("#errorNombre").hide("slow");
if ( !document.forminsertar.strNombre.value ){
$("#errorNombre").show("slow");
return false; // Esto detiene la función en este punto
}
return true;
}
A lo mejor así lo ves un poco más claro en principio debería funcionarte siempre que la expresión regular con la que validas el email sea correcta ( no me he parado a comprobarla) . Como puedes comprobar he prescindido de la variable "valid" y retornas false o true en función de que sea correcta la validación o no.
En javascript es conveniente definir las variables dentro de cada función, si no éstas se comportarán como variables globales y podrás tener errores en tu código. Con ECMA 6 hay tres formas de definir las variables.
var,
const,
let.
var - Define variables normales con un scope dentro de la función donde se haya definido.
const - Define variables constantes con un scope dentro de la función o el bloque donde se haya definido. En lo que refiere al scope se comporta igual que
var solo que éstas no se pueden modificar a no ser que sean objetos.
let - Define variables normales con un scope dentro de un bloque que puede ser un if o un for por ejemplo. Si defines una variable con
let dentro de un bloque if, esta variable no estará disponible fuera del bloque.
Como consejo acostúmbrate a definir las variables.
Otro consejo cuando compares si algo es igual a algo, en javascript lo ideal es usar tres signos de igual ( === ).