Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Agrego tarea resuelta de la clase 8 #24

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@

<ul id="errores">
</ul>


<p>
<button name="submit" id="enviar-carta">
Expand Down
110 changes: 110 additions & 0 deletions js/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
const $form = document.querySelector('#carta-a-santa');
const nombre = $form.nombre.value;
const ciudad = $form.ciudad.value;
const comportamiento = $form.comportamiento.value;
const descripcionRegalo = $form['descripcion-regalo'].value;



console.log(nombre);
console.log(ciudad);
console.log(comportamiento);
console.log(descripcionRegalo);

function validarNombre(nombre){
if (nombre.length===0){
return 'Este campo debe tener al menos 1 caracter'
}

if (nombre.length>=50){
return 'Este campo debe tener menos de 50 caracteres'
}

if (!/^[A-z]+$/.test(nombre)){
return 'el campo nombre solo acepta letras'
}

return ''
}



function validarCiudad(ciudad){
if (ciudad.length===0){
return 'Debes seleccionar una ciudad'
}
return ''
}

function validarDescripcionRegalo(descripcionRegalo){
if (descripcionRegalo.length===0){
return 'Debes describir el regalo que quieres'
}

if (descripcionRegalo.length>=100){
return 'Tranquilo! tu descripcion debe tener menos de 100 caracteres'
}

else if (!/^[A-z0-9]+$/.test(descripcionRegalo)){
return 'El campo descripcion solo puede tener numeros y letras'
}
return ''
}

function validarFormulario(event){
const $form = document.querySelector('#carta-a-santa');
const nombre = $form.nombre.value;
const ciudad = $form.ciudad.value;
const descripcionRegalo = $form['descripcion-regalo'].value;


const errorNombre = validarNombre(nombre);
const errorCiudad = validarCiudad(ciudad)
const errorDescripcionRegalo = validarDescripcionRegalo(descripcionRegalo);

const errores = {
nombre: errorNombre,
ciudad: errorCiudad,
'descripcion-regalo': errorDescripcionRegalo,

}

const esExito = manejarErrores(errores)===0;

if (esExito){
$form.className = 'oculto';
document.querySelector("#exito").className = ''
setTimeout(function(){location.href="wishlist.html"} , 5000);
}

event.preventDefault();
}

function manejarErrores(errores){
const keys = Object.keys(errores)
const $errores = document.querySelector("#errores");
let cantidadErrores = 0;

keys.forEach(function(key){
const error = errores[key]

if (error){
cantidadErrores++;
$form[key].className = "error"

const $error = document.createElement('li')
$error.innerText = error
$errores.appendChild($error);

}else{
$form[key].className = ""
}

});
return cantidadErrores
}

$form.onsubmit = validarFormulario;



33 changes: 32 additions & 1 deletion js/pruebas.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,38 @@ function probarValidarNombre() {
'111111111111111111111111111111111111111111111111111111111111111111111111111111111111111') ===
'Este campo debe tener menos de 50 caracteres',
'Validar nombre no validó que el nombre sea menor a 50 caracteres',
);
);

console.assert(validarNombre("123456")==='el campo nombre solo acepta letras',
"Validar nombre no valido que el nombre solo tenga letras")

console.assert(validarNombre('Fabricio') === "",
'Validar nombre fallo con un nombre valido')
}


probarValidarNombre();


function probarValidarCiudad(){
console.assert(validarCiudad('') === 'Debes seleccionar una ciudad',
'Validar ciudad no valido que haya una ciudad seleccionada');
}

probarValidarCiudad();



function probarValidarDescripcionRegalo(){
console.assert(validarDescripcionRegalo('')==='Debes describir el regalo que quieres',
'Validar descripcion regalo no valido si la descripcion estaba vacia')

console.assert(validarDescripcionRegalo('11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111')===
'Tranquilo! tu descripcion debe tener menos de 100 caracteres',
'Validar descripcion regalo no valido que la descripcion tenga menos de 100 caracteres')

console.assert(validarDescripcionRegalo(".,.,.,.,")==='El campo descripcion solo puede tener numeros y letras',
"La funcion validar descripcion regalo no valido que fueran solo numeros y letras")
};

probarValidarDescripcionRegalo();