Проблема в том, что вы выполняете сложение , читая входное значение при каждом вводе ключа. Если пользователь, например, нажимает BACKSPACE, чтобы очистить ввод, значение будет пустой строкой, которая приведет к NaN после parseInt. И если у вас есть NaN (в переменной total
), вы больше не можете от него избавиться.
Попробуйте это:
document.getElementById('dds1').onkeyup = function() {
var value = parseInt(this.value, 10);
if ( !isNaN(value) ) {
total += value;
updateIt();
}
};
Здесь вы сначала проверяете, может ли входное значение быть проанализировано как число. Если нет, вы просто игнорируете это.
Другой способ сделать это будет следующим:
document.getElementById('dds1').onkeyup = function() {
var value = parseInt(this.value, 10);
isNaN(value) && return;
total += value;
updateIt();
};
Здесь, если вы читаете входное значение, которое не может быть преобразовано в число, вы просто полностью возвращаете функцию.