This commit is contained in:
parent
5c6e39f778
commit
e14abc3e73
52
CSS/main.css
52
CSS/main.css
|
@ -88,6 +88,7 @@
|
|||
opacity: 1;
|
||||
z-index: 98;
|
||||
|
||||
|
||||
}
|
||||
|
||||
.cestaCompra:hover > .desplegable-carrito{
|
||||
|
@ -780,44 +781,6 @@
|
|||
|
||||
/*------------------------------CONTACTO------------------------*/
|
||||
|
||||
.formulario-contacto input[type="email"] {
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
width: 100%;
|
||||
border: 1px solid gold;
|
||||
margin: 0;
|
||||
font-family: inherit;
|
||||
font-size: 90%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.formulario-contacto input:invalid {
|
||||
border-color: red;
|
||||
background-color: rgba(19, 133, 34, 0.5);
|
||||
|
||||
}
|
||||
|
||||
.formulario-contacto input:focus:invalid {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.formulario-contacto .error {
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
font-size: 80%;
|
||||
color: white;
|
||||
background-color: #900;
|
||||
border-radius: 0 0 5px 5px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.formulario-contacto .error.active {
|
||||
padding: 3px;
|
||||
display: block;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
.cuerpo-contacto {
|
||||
display: flex;
|
||||
|
@ -900,7 +863,20 @@ button.boton-enviar-form {
|
|||
background-color: rgba(40, 42, 55, 0.9);
|
||||
}
|
||||
|
||||
.msgError {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.msgError.active{
|
||||
|
||||
display: contents;
|
||||
color: red;
|
||||
|
||||
}
|
||||
|
||||
.claseError.active {
|
||||
border-color: red;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -5,10 +5,9 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="../CSS/main.css">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css">
|
||||
<script src="../JS/index.js"></script>
|
||||
<title>La Forja Dorada</title>
|
||||
</head>
|
||||
<body onload="cargado(), validarFormulario(), galletas()">
|
||||
<body onload="cargado(), galletas()">
|
||||
<header class="grid-cabeza-container">
|
||||
<div class="grid-cabeza-logo">
|
||||
<img src="..\RECURSOS\Logo\LogoForjaDorada200x160.png" alt="">
|
||||
|
@ -110,20 +109,22 @@
|
|||
<div class="formulario-contacto">
|
||||
<h2>Contacta con La Forja</h2>
|
||||
<form action="https://formsubmit.co/7e360d9cc9ca04dfaa14e5a35e53cf18" method="POST" id="formularioContacto">
|
||||
<label for="name">Nombre:</label>
|
||||
<input type="text" name="name">
|
||||
|
||||
<label for="mail">
|
||||
<span>Correo Electrónico:</span>
|
||||
<input type="email" name="mail" id="mailForm" >
|
||||
<span class="error" aria-live="polite" id="mailErrorArea"></span>
|
||||
<label for="name">Nombre:
|
||||
<span class="msgError" id="errorNombre">Introduce un nombre valido</span>
|
||||
</label>
|
||||
<label for="subject">Asunto:</label>
|
||||
<input type="text" name="subject" id="formSubject">
|
||||
<input type="text" name="name" id="nombre" class="claseError">
|
||||
|
||||
<label for="mail">Correo Electrónico: <span class="msgError" id="emailErrorMailUno">Introduce un email valido</span></label>
|
||||
|
||||
<input type="email" name="mail" id="mail" class="claseError">
|
||||
|
||||
<label for="subject">Asunto:
|
||||
<span class="msgError" id="errorAsunto">Introduce un asunto valido</span>
|
||||
</label>
|
||||
<input type="text" name="subject" id="formSubject" class="claseError">
|
||||
<label for="comentarios">Comentarios:</label>
|
||||
<textarea name="comments" id="formComment" cols="30" rows="10"></textarea>
|
||||
<button type="button" class="boton-enviar-form" id="enviarForm">Enviar</button>
|
||||
<button type="button" class="boton-enviar-form" id="enviarForm" onclick="enviarFormulario()">Enviar</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
@ -158,6 +159,7 @@
|
|||
</nav>
|
||||
</footer>
|
||||
|
||||
<script src="../JS/index.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
253
JS/index.js
253
JS/index.js
|
@ -5,7 +5,6 @@
|
|||
(adición, eliminación o modificación de productos, eventos...) */
|
||||
|
||||
|
||||
let cestaCompra = [];
|
||||
|
||||
const infoProductos = [
|
||||
{
|
||||
|
@ -195,40 +194,19 @@ const cargado = () => {
|
|||
|
||||
|
||||
|
||||
let cestaCompra = [];
|
||||
|
||||
function guardarEnCarrito() {
|
||||
|
||||
let prodAñadido = this.event.target.getAttribute("marcador");
|
||||
let controlCesta = cestaCompra.includes(prodAñadido);
|
||||
leerCesta();
|
||||
if ( cestaCompra.length == 0 || !controlCesta) {
|
||||
cestaCompra.push(prodAñadido);
|
||||
function leerCesta() {
|
||||
|
||||
try {
|
||||
localStorage.setItem('numProd', JSON.stringify(cestaCompra));
|
||||
renderizarCesta();
|
||||
|
||||
} catch (e) {
|
||||
return "Error al guardar el item en el localStorage: " + e.message;
|
||||
}
|
||||
var lecturaCesta = JSON.parse(localStorage.getItem('numProd'));
|
||||
if (lecturaCesta === null) {
|
||||
cestaCompra = [];
|
||||
} else {
|
||||
cestaCompra = lecturaCesta;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
function borrarArticulo() {
|
||||
let prodABorrar = this.event.target.getAttribute("marcador");
|
||||
let indice = cestaCompra.indexOf(prodABorrar);
|
||||
cestaCompra.splice(indice, 1);
|
||||
try {
|
||||
localStorage.setItem('numProd', JSON.stringify(cestaCompra));
|
||||
renderizarCesta();
|
||||
|
||||
} catch (e) {
|
||||
return "Error al guardar el item en el localStorage: " + e.message;
|
||||
}
|
||||
}
|
||||
|
||||
function renderizarCesta(){
|
||||
|
||||
leerCesta()
|
||||
|
@ -275,7 +253,38 @@ const cargado = () => {
|
|||
elPrecioTotal.textContent = elPrecio
|
||||
}
|
||||
|
||||
function guardarEnCarrito() {
|
||||
|
||||
let prodAñadido = this.event.target.getAttribute("marcador");
|
||||
let controlCesta = cestaCompra.includes(prodAñadido);
|
||||
leerCesta();
|
||||
if ( cestaCompra.length == 0 || !controlCesta) {
|
||||
cestaCompra.push(prodAñadido);
|
||||
|
||||
try {
|
||||
localStorage.setItem('numProd', JSON.stringify(cestaCompra));
|
||||
renderizarCesta();
|
||||
|
||||
} catch (e) {
|
||||
return "Error al guardar el item en el localStorage: " + e.message;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
function borrarArticulo() {
|
||||
let prodABorrar = this.event.target.getAttribute("marcador");
|
||||
let indice = cestaCompra.indexOf(prodABorrar);
|
||||
cestaCompra.splice(indice, 1);
|
||||
try {
|
||||
localStorage.setItem('numProd', JSON.stringify(cestaCompra));
|
||||
renderizarCesta();
|
||||
|
||||
} catch (e) {
|
||||
return "Error al guardar el item en el localStorage: " + e.message;
|
||||
}
|
||||
}
|
||||
|
||||
function eliminarCesta() {
|
||||
localStorage.removeItem("numProd");
|
||||
|
@ -286,20 +295,8 @@ const cargado = () => {
|
|||
elPrecioTotal.textContent = 0;
|
||||
}
|
||||
|
||||
function leerCesta() {
|
||||
|
||||
|
||||
var lecturaCesta = JSON.parse(localStorage.getItem('numProd'));
|
||||
if (lecturaCesta === null) {
|
||||
cestaCompra = [];
|
||||
} else {
|
||||
cestaCompra = lecturaCesta;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
function tramitarPedido(){
|
||||
|
||||
|
@ -415,11 +412,6 @@ const genListaProd = () => {
|
|||
|
||||
}
|
||||
|
||||
/** más adelante se creará un botón para añadir a un carrito y un contenedor para los articulos del carrito
|
||||
con sus correspondientes botones para quitar el producto, un espacio donde figure la suma de las cantidades, etc. */
|
||||
|
||||
|
||||
|
||||
|
||||
//--------------------- CONFIGURACIÓN SLIDERS ------------------------------///
|
||||
|
||||
|
@ -657,47 +649,138 @@ const genListaEven = () => {
|
|||
|
||||
/*-------------------CONTROL FORMULARIO--------------------*/
|
||||
|
||||
|
||||
const validarFormulario = () => {
|
||||
let formulario = document.getElementById('formularioContacto');
|
||||
let botonFormulario = document.getElementById('enviarForm');
|
||||
|
||||
const emailError = document.getElementById('mailErrorArea');
|
||||
let campoEmail = document.getElementById('mailForm');
|
||||
|
||||
|
||||
campoEmail.addEventListener("input", function (event) {
|
||||
|
||||
|
||||
if (campoEmail.validity.valid) {
|
||||
emailError.innerHTML = "";
|
||||
emailError.className = "error";
|
||||
} else {
|
||||
showError();
|
||||
}
|
||||
});
|
||||
|
||||
form.addEventListener("submit", function (event) {
|
||||
|
||||
if (!campoEmail.validity.valid) {
|
||||
showError();
|
||||
event.preventDefault();
|
||||
}
|
||||
});
|
||||
|
||||
function showError() {
|
||||
if (campoEmail.validity.valueMissing) {
|
||||
|
||||
emailError.textContent = "Debe introducir una dirección de correo electrónico.";
|
||||
} else if (campoEmail.validity.typeMismatch) {
|
||||
|
||||
emailError.textContent = "El valor introducido debe ser una dirección de correo electrónico.";
|
||||
}
|
||||
emailError.className = "error active";
|
||||
}
|
||||
formulario.submit()
|
||||
const validaciones = {
|
||||
validacionNombre: false,
|
||||
validacionMail: false,
|
||||
validacionAsunto: false,
|
||||
|
||||
}
|
||||
|
||||
|
||||
const expValidarNombre = /^[a-zA-ZÀ-ÿ\s]{1,30}$/;
|
||||
const expValidarCorreo = /^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/;
|
||||
const expValidarAsunto = /^.{4,12}$/;
|
||||
|
||||
const formulario = document.getElementById('formularioContacto');
|
||||
const mensajeError = document.getElementById("emailErrorMailUno");
|
||||
|
||||
|
||||
const correoUsuario = document.getElementById("mail");
|
||||
|
||||
correoUsuario.addEventListener('keyup', validarMail);
|
||||
correoUsuario.addEventListener('blur', validarMail);
|
||||
|
||||
function validarMail() {
|
||||
|
||||
let inputATestear = correoUsuario.value
|
||||
if (!expValidarCorreo.test(inputATestear) && inputATestear.length !== 0) {
|
||||
correoUsuario.classList.add("active");
|
||||
mensajeError.classList.add("active");
|
||||
validaciones.validacionMail = false;
|
||||
|
||||
|
||||
}else if (inputATestear.length === 0){
|
||||
|
||||
correoUsuario.classList.remove("active");
|
||||
mensajeError.classList.remove("active");
|
||||
validaciones.validacionMail = false;
|
||||
|
||||
}
|
||||
else {
|
||||
correoUsuario.classList.remove("active");
|
||||
mensajeError.classList.remove("active");
|
||||
validaciones.validacionMail = true;
|
||||
|
||||
}
|
||||
}
|
||||
const nombreATestear = document.getElementById("nombre");
|
||||
const errorNombre = document.getElementById("errorNombre")
|
||||
nombreATestear.addEventListener('keyup', validarNombre);
|
||||
nombreATestear.addEventListener('blur', validarNombre);
|
||||
function validarNombre() {
|
||||
|
||||
let inputATestear = nombreATestear.value
|
||||
if (!expValidarNombre.test(inputATestear) && inputATestear.length !== 0) {
|
||||
nombreATestear.classList.add("active");
|
||||
errorNombre.classList.add("active");
|
||||
validaciones.validacionNombre = false;
|
||||
|
||||
|
||||
}else if (inputATestear.length === 0){
|
||||
|
||||
nombreATestear.classList.remove("active");
|
||||
errorNombre.classList.remove("active");
|
||||
validaciones.validacionNombre = false;
|
||||
|
||||
}
|
||||
else {
|
||||
nombreATestear.classList.remove("active");
|
||||
errorNombre.classList.remove("active");
|
||||
validaciones.validacionNombre = true;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const asuntoATestear = document.getElementById("formSubject");
|
||||
const errorAsunto = document.getElementById("errorAsunto")
|
||||
asuntoATestear.addEventListener('keyup', validarAsunto);
|
||||
asuntoATestear.addEventListener('blur', validarAsunto);
|
||||
function validarAsunto() {
|
||||
|
||||
let inputATestear = asuntoATestear.value
|
||||
if (!expValidarAsunto.test(inputATestear) && inputATestear.length !== 0) {
|
||||
asuntoATestear.classList.add("active");
|
||||
errorAsunto.classList.add("active");
|
||||
validaciones.validacionAsunto = false;
|
||||
|
||||
|
||||
}else if (inputATestear.length === 0){
|
||||
|
||||
asuntoATestear.classList.remove("active");
|
||||
errorAsunto.classList.remove("active");
|
||||
validaciones.validacionAsunto = false;
|
||||
|
||||
}
|
||||
else {
|
||||
asuntoATestear.classList.remove("active");
|
||||
errorAsunto.classList.remove("active");
|
||||
validaciones.validacionAsunto = true;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function enviarFormulario() {
|
||||
if (validaciones.validacionAsunto == true && validaciones.validacionMail == true && validaciones.validacionNombre == true){
|
||||
formulario.submit();
|
||||
alert("mensaje enviado");
|
||||
correoUsuario.value = "";
|
||||
asuntoATestear.value = "";
|
||||
nombreATestear.value = "";
|
||||
}else if (validaciones.validacionAsunto == false) {
|
||||
asuntoATestear.classList.add("active");
|
||||
errorAsunto.classList.add("active");
|
||||
alert("revisa los campos, hay alguno incorrecto")
|
||||
|
||||
|
||||
} else if (validaciones.validacionNombre == false) {
|
||||
nombreATestearATestear.classList.add("active");
|
||||
errorNombre.classList.add("active");
|
||||
alert("revisa los campos, hay alguno incorrecto")
|
||||
|
||||
|
||||
}else if (validaciones.validacionMail == false) {
|
||||
correoUsuario.classList.add("active");
|
||||
mensajeError.classList.add("active");
|
||||
alert("revisa los campos, hay alguno incorrecto")
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
else {
|
||||
alert("revisa los campos, hay alguno incorrecto")
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue