Хм, здесь что-то подозрительное.
В каком браузере пустое текстовое поле возвращает NaN? Я никогда не видел, чтобы это случилось, и я не могу воспроизвести это.
Значением текстового поля является строка. Пустое текстовое поле возвращает пустую строку!
Да, и чтобы проверить, является ли что-то NaN, вы должны использовать:
if (isNaN(tb.value))
{
...
}
Примечание. Функция isNaN()
возвращает true
для всего, что не может быть проанализировано как число, кроме пустых строк. Это означает, что это хорошая проверка для числового ввода (намного проще, чем регулярные выражения):
if (tb.value != "" && !isNaN(tb.value))
{
// It's a number
numValue = parseFloat(tb.value);
}