Improve error handling

This commit is contained in:
Florine W. Dekker 2019-06-10 00:54:16 +02:00
parent c7f920d4a6
commit cb87f6fa09
Signed by: FWDekker
GPG Key ID: B1B567AF58D6EE0F
1 changed files with 24 additions and 14 deletions

View File

@ -161,25 +161,39 @@
const submitButton = $("#submit"); const submitButton = $("#submit");
const outputField = $("#out"); const outputField = $("#out");
const outputSimplifiedFraction = () => { const validateInputs = () => {
let numerator = numeratorInput.value; let numerator = numeratorInput.value;
let denominator = denominatorInput.value; let denominator = denominatorInput.value;
if (!isInt(numerator) || !isInt(denominator)) { if (numerator === "")
outputField.innerText = "The numerator and denominator must be integers."; return [numeratorInput, "Numerator must not be empty."];
if (denominator === "")
return [denominatorInput, "Denominator must not be empty."];
if (!isInt(numerator))
return [numeratorInput, "Numerator must be an integer."];
if (!isInt(denominator))
return [denominatorInput, "Denominator must be an integer."];
if (+denominator === 0)
return [denominatorInput, "Denominator must not be 0."];
return undefined;
};
const outputSimplifiedFraction = () => {
const validationInfo = validateInputs();
if (validationInfo !== undefined) {
validationInfo[0].select();
outputField.innerText = validationInfo[1];
return; return;
} }
const fraction = new Fraction(numerator, denominator); const fraction = new Fraction(numeratorInput.value, denominatorInput.value);
outputField.innerText = "$$" + fraction.toString() + " = " + fraction.simplify().toReducedString() + "$$"; outputField.innerText = "$$" + fraction.toString() + " = " + fraction.simplify().toReducedString() + "$$";
MathJax.Hub.Queue(["Typeset", MathJax.Hub]); MathJax.Hub.Queue(["Typeset", MathJax.Hub]);
}; };
submitButton.onclick = () => { submitButton.onclick = () => outputSimplifiedFraction();
outputSimplifiedFraction();
numeratorInput.select();
};
numeratorInput.addEventListener("keydown", event => { numeratorInput.addEventListener("keydown", event => {
if (event.key === "Enter") { if (event.key === "Enter") {
@ -194,12 +208,8 @@
denominatorInput.addEventListener("keydown", event => { denominatorInput.addEventListener("keydown", event => {
if (event.key === "Enter") { if (event.key === "Enter") {
if (numeratorInput.value === "") { outputSimplifiedFraction();
numeratorInput.select(); denominatorInput.select();
} else {
outputSimplifiedFraction();
denominatorInput.select();
}
} }
}); });
</script> </script>