feat: add form validation and submission handling for exercise 5

This commit is contained in:
2026-05-20 17:20:46 -03:00
parent 36afe58c6f
commit b7d5d9a176
3 changed files with 91 additions and 2 deletions

View File

@@ -53,4 +53,63 @@ insideButton.addEventListener('click', () => {
outside.addEventListener('click', () => { outside.addEventListener('click', () => {
console.log("outside capturing"); console.log("outside capturing");
}, true); }, true);
// Ejercicio 5
const userForm = document.getElementById('userForm');
const nameInput = document.getElementById('nameInput');
const ageInput = document.getElementById('ageInput');
const messageInput = document.getElementById('messageInput');
const clearErrors = () => {
document.getElementById('nameError').textContent = '';
document.getElementById('ageError').textContent = '';
document.getElementById('messageError').textContent = '';
}
const validateForm = () => {
let isValid = true;
if (nameInput.value.trim() === '') {
document.getElementById('nameError').textContent = 'El nombre es obligatorio.';
isValid = false;
}
const age = parseInt(ageInput.value);
if (isNaN(age) || age < 0 || age > 120) {
document.getElementById('ageError').textContent = 'La edad debe ser un número entre 0 y 120.';
isValid = false;
}
if (messageInput.value.trim() === '') {
document.getElementById('messageError').textContent = 'El mensaje es obligatorio.';
isValid = false;
}
return isValid;
}
const showSuccessMessage = () => {
alert('Formulario enviado con éxito!');
}
const clearForm = () => {
nameInput.value = '';
ageInput.value = '';
messageInput.value = '';
}
const handleSubmit = (event) => {
event.preventDefault();
clearErrors();
const isValid = validateForm();
if (isValid) {
showSuccessMessage();
clearForm();
}}
userForm.addEventListener('submit', handleSubmit);

View File

@@ -14,4 +14,14 @@ li {
font-weight: bold; font-weight: bold;
border-radius: 6px; border-radius: 6px;
padding: 4px 8px; padding: 4px 8px;
}
.errorMessage {
color: red;
font-size: 14px;
}
#successMessage {
color: green;
font-weight: bold;
} }

View File

@@ -47,7 +47,27 @@
</div> </div>
<hr> <hr>
<div id="ejercicio-5"> <div id="ejercicio-5">
<!-- Agregar acá el código HTML que haga falta para el ejercicio 5 --> <form id="userForm">
<label for="nameInput">Nombre:</label>
<input type="text" id="nameInput">
<p id="nameError" class="errorMessage"></p>
<label for="ageInput">Edad:</label>
<input type="number" id="ageInput">
<p id="ageError" class="errorMessage"></p>
<label for="messageInput">Mensaje:</label>
<textarea id="messageInput"></textarea>
<p id="messageError" class="errorMessage"></p>
<button type="submit">
Enviar
</button>
<p id="successMessage"></p>
</form>
</div> </div>
<script src="clase-9.js"></script> <script src="clase-9.js"></script>
</body> </body>