<div id="contenedor" class="container"> <p>Código postal: <input type="text" id="cp" placeholder="Introduzca el cp"></p> <button id="calcular" class="btn btn-success">Calcular gastos de envío</button> <h3 id="resultado"></h3> </div>
document.getElementById('calcular').addEventListener('click', calcular)
function calcular () {
const cp = document.getElementById('cp').value
console.log(cp)
// Haré los cálculos
document.getElementById('resultado').innerHTML = 'Mensaje'
}
function gastosEnvio (cp) {
/* Detectar cp Barcelona: 1 pt
Detectar cp Catalunya: 3 pt
Detectar cp resto: 2pt
*/
return 0
}
function cpCorrecto (cp) {
/*
Detectar longitud = 5: 2 pt
Detectar todo dígitos: 2 pt
*/
return true
}
Todo resuelto:
document.getElementById('calcular').addEventListener('click', calcular)
function calcular () {
const cp = document.getElementById('cp').value
// Haré los cálculos
let mensaje = ''
if (cpCorrecto(cp)) {
mensaje = 'Gastos de envío: ' + gastosEnvio(cp) + ' €'
} else {
mensaje = 'Código incorrecto'
}
document.getElementById('resultado').innerHTML = mensaje
}
function gastosEnvio (cp) {
/* Detectar cp Barcelona: 1 pt
Detectar cp Catalunya: 3 pt
Detectar cp resto: 2pt
*/
let gastos = 5
if (cp.startsWith('08')) {
gastos = 0
} else if (cp.startsWith('25') || cp.startsWith('43') || cp.startsWith('17')) {
gastos = 3
}
return gastos
}
function cpCorrecto (cp) {
/*
Detectar longitud = 5: 2 pt cp.length==5
Detectar todo dígitos: 2 pt isNaN(cp)-> No es un número, por lo tanto la negación: !isNaN(cp)
*/
if (cp.length == 5 && !isNaN(cp)) {
return true
} else {
return false
}
}
function todoDigitos (cadena) {
for (let i = 0; i < cadena.length; i++) {
if (cadena.slice(i, i + 1) < '0' || cadena.slice(i, i + 1) > '9') {
return false
}
}
return true
}