Check input isn't null before evaluating the number

This commit is contained in:
Matthew Grove
2018-11-14 19:07:01 +00:00
parent 8db49a24a3
commit e16016b8b5

View File

@@ -12,18 +12,23 @@ document.addEventListener("keyup", function(event) {
// function for validating number entered with Luhn algorithm
function checkNumber() {
// retrieve digits & reverse
var digits = document.getElementsByTagName("input")[0].value.split("").reverse(), sum = 0;
digits.forEach(function(currentDigit, index) {
newDigit = Number(currentDigit);
if (index % 2 == 1) {
if ((newDigit *= 2) > 9) {
newDigit -= 9;
// define input string and remove non-numerical characters
var input = document.getElementsByTagName("input")[0].value.replace(/\D/g,'');;
// check string isn't empty
if (input) {
// retrieve digits & reverse
var digits = document.getElementsByTagName("input")[0].value.split("").reverse(), sum = 0;
digits.forEach(function(currentDigit, index) {
newDigit = Number(currentDigit);
if (index % 2 == 1) {
if ((newDigit *= 2) > 9) {
newDigit -= 9;
}
}
}
sum += newDigit;
});
sum += newDigit;
});
// displays evaluation message
$("#validation_message").html(((sum % 10) == 0) ? "Number is valid" : "Number is invalid");
// displays evaluation message
$("#validation_message").html(((sum % 10) == 0) ? "Number is valid" : "Number is invalid");
}
}