programacion-web
Version:
validacion-formularios
97 lines (86 loc) • 2.83 kB
JavaScript
// Funciones flecha para las operaciones
const sumar = (a, b) => a + b;
const restar = (a, b) => a - b;
const multiplicar = (a, b) => a * b;
const dividir = (a, b) => b !== 0 ? a / b : 'Error: División por cero';
// Función principal
const calcularOperacion = (operacion) => {
const numero1 = document.getElementById('numero1').value.trim();
const numero2 = document.getElementById('numero2').value.trim();
const resultado = document.getElementById('resultado');
// Validar que ambos campos tengan valores
if (numero1 === '' || numero2 === '') {
Swal.fire({
icon: 'error',
title: 'Campos vacíos',
text: 'Por favor ingresa ambos números',
confirmButtonColor: '#3498db'
});
return;
}
// Validar que sean números
if (isNaN(numero1)) {
Swal.fire({
icon: 'error',
title: 'Número inválido',
text: 'El primer valor no es un número válido',
confirmButtonColor: '#3498db'
});
return;
}
if (isNaN(numero2)) {
Swal.fire({
icon: 'error',
title: 'Número inválido',
text: 'El segundo valor no es un número válido',
confirmButtonColor: '#3498db'
});
return;
}
// Convertir a números
const num1 = parseFloat(numero1);
const num2 = parseFloat(numero2);
// Realizar la operación correspondiente
let res;
switch (operacion) {
case 'sumar':
res = sumar(num1, num2);
break;
case 'restar':
res = restar(num1, num2);
break;
case 'multiplicar':
res = multiplicar(num1, num2);
break;
case 'dividir':
res = dividir(num1, num2);
if (typeof res === 'string') { // Si es mensaje de error
Swal.fire({
icon: 'error',
title: 'Error en división',
text: res,
confirmButtonColor: '#3498db'
});
resultado.value = '';
return;
}
break;
default:
res = 'Operación no válida';
}
// Mostrar el resultado
resultado.value = res;
}
// Permitir calcular al presionar Enter en cualquier campo
document.getElementById('numero1').addEventListener('keypress', (e) => {
if (e.key === 'Enter') {
e.preventDefault();
calcularOperacion('sumar');
}
});
document.getElementById('numero2').addEventListener('keypress', (e) => {
if (e.key === 'Enter') {
e.preventDefault();
calcularOperacion('sumar');
}
});