SW/assets/js/checkForms.js

153 lines
4.9 KiB
JavaScript

/**
* Práctica - Sistemas Web | Grupo D
* CompluCine - FDI-cines
*/
//Expresión regular para comprobar que la contraseña tiene al menos 1 mayúscula y 1 número:
const regExprPass = /^(?=\w*\d)(?=\w*[A-Z])(?=\w*[a-z])\S{4,16}$/;
$(document).ready(function() {
//Iconos para validar el usuario:
$("#userValid").hide();
$("#userInvalid").hide();
$("#userWarning").hide();
//Iconos para validar el email:
$("#emailValid").hide();
$("#emailInvalid").hide();
//Iconos para validar el password:
$("#passValid").hide();
$("#passInvalid").hide();
$("#passWarning").hide();
//Iconos para validar que las contraseñas coindicen:
$("#repassValid").hide();
$("#repassInvalid").hide();
//Comprueba que el nombre de usuario introducido para el login, exista.
$("#name").change(function(){
var url = "../assets/php/common/checkUser.php?user=" + $("#name").val();
$.get(url, userLoginCheck);
});
//Comprueba que el nombre de usuario no esté registrado en la aplicación.
$("#new_name").change(function(){
var url = "../assets/php/common/checkUser.php?user=" + $("#new_name").val();
$.get(url, userCheck);
});
//Comprueba que el email introducido no esté registrado en la aplicación.
$("#new_email").change(function(){
var url = "../assets/php/common/checkEmail.php?email=" + $("#new_email").val();
$.get(url, emailCheck);
});
//Comprueba que la contraseña sea válida en base a los criterios de la aplicación.
$("#new_pass").change(function(){
const fieldPass = $("#new_pass");
fieldPass[0].setCustomValidity("");
const isPassValid = fieldPass[0].checkValidity();
if(fieldPass.val().length < 4){
$("#passValid").hide();
$("#passInvalid").hide();
$("#passWarning").show();
fieldPass[0].setCustomValidity("La contraseña debe contener almenos 4 caracteres.");
}
else if (isPassValid && passCheck(fieldPass.val())) {
$("#passValid").show();
$("#passInvalid").hide();
$("#passWarning").hide();
fieldPass[0].setCustomValidity("");
} else {
$("#passValid").hide();
$("#passInvalid").show();
$("#passWarning").hide();
fieldPass[0].setCustomValidity("La contraseña debe contener al menos 1 mayúscula y 1 número.");
}
});
//Comprueba que las contraseñas sean iguales.
$("#repass").change(function(){
const fieldPass = $("#new_pass");
const fieldRepass = $("#repass");
fieldRepass[0].setCustomValidity("");
if (Object.is(fieldPass.val(), fieldRepass.val())) {
$("#repassValid").show();
$("#repassInvalid").hide();
fieldRepass[0].setCustomValidity("");
} else {
$("#repassValid").hide();
$("#repassInvalid").show();
fieldRepass[0].setCustomValidity("Las contraseñas deben coincidir.");
}
});
//Muestra si el nombre de usuario introducido para el login existe o no.
function userLoginCheck(data, status) {
const fieldLogin = $("#name");
fieldLogin[0].setCustomValidity("");
if(data === "!avaliable") {
fieldLogin[0].setCustomValidity("");
} else {
fieldLogin[0].setCustomValidity("El nombre de usuario no está registrado.");
}
}
//Muestra si el nombre de usuario introducido es válido o no.
function userCheck(data, status) {
const fieldUser = $("#new_name");
fieldUser[0].setCustomValidity("");
if(fieldUser.val().length < 3){
$("#userValid").hide();
$("#userInvalid").hide();
$("#userWarning").show();
fieldUser[0].setCustomValidity("El nombre de usuario debe tener almenos 3 caracteres.");
}
else if(data === "avaliable") {
$("#userValid").show();
$("#userInvalid").hide();
$("#userWarning").hide();
fieldUser[0].setCustomValidity("");
} else {
$("#userValid").hide();
$("#userInvalid").show();
$("#userWarning").hide();
fieldUser[0].setCustomValidity("El nombre de usuario ya está registrado.");
}
}
//Muestra si el email introducido es válido o no.
function emailCheck(data, status) {
const fieldEmail = $("#new_email");
fieldEmail[0].setCustomValidity("");
const isEmailValid = fieldEmail[0].checkValidity();
if(!isEmailValid){
$("#emailValid").hide();
$("#emailInvalid").show();
}
else if (data === "avaliable") {
$("#emailValid").show();
$("#emailInvalid").hide();
fieldEmail[0].setCustomValidity("");
} else {
$("#emailValid").hide();
$("#emailInvalid").show();
fieldEmail[0].setCustomValidity("El email ya está registrado.");
}
}
//Devuelve true si la contraseña cumple los reuqisitos de seguridad, false en caso contrario.
function passCheck(pass) {
return regExprPass.test(pass) ? true : false;
}
})