This repository has been archived on 2024-09-11. You can view files and clone it, but cannot push or open issues or pull requests.
Files
IT2/html/test_03.04.20/oppgaver/oppgave2/oppgave.js
2020-04-03 13:22:16 +02:00

60 lines
1.7 KiB
JavaScript

// @ts-check
/* Initialize variables */
const houseValueMax = 10000000;
/* Register HTML DOM elements by variables */
const form = document.getElementById('input');
const houseValue = document.getElementById('houseValue');
const rentSum = document.getElementById('rentingSum');
const submitButton = document.getElementById('submit');
const formError = document.getElementById('error1');
const result = document.getElementById('result');
/* Add event listeners */
form.addEventListener('submit', evt => {
evt.preventDefault();
formError.innerHTML = '';
const house = parseInt(houseValue.value);
const rent = parseInt(rentSum.value);
/* Error checking
* I'm aware that I could've just used max and min for checking some of the errors
* but I wanted the error format to be consistent.
*/
try {
if (house > houseValueMax) throw `Boligverdien kan ikke være større enn ${houseValueMax}kr`;
if (rent > house) throw 'Lånesummen kan ikke være større enn boligverdien';
if (house <= 0) throw 'Boligverdi må være større enn 0';
if (rent <= 0) throw 'Lånesum må være større enn 0';
if (isNaN(house)) throw 'Fyll ut Boligverdi';
if (isNaN(rent)) throw 'Fyll ut lånesum';
} catch (error) {
result.innerHTML = '';
const errorMessage = createError(error);
formError.appendChild(errorMessage);
return;
}
/* Result based on input */
if (rent < 0.75 * house) {
result.innerHTML = 'Renten er satt til 2,29%';
return;
}
if (rent >= 0.75 * house && rent < 0.9 * house) {
result.innerHTML = 'Renten er satt til 2,49%';
return;
}
if (rent >= 0.9 * house) {
result.innerHTML = 'Renten er satt til 2,69% og du må ha en kausjonist';
return;
}
});