prefiero usar una expresión regular, pero la función isNaN() es perfectamente válida para saber si un valor es numérico o no. el problema que planteas, es que los valores recibidos de un formulario son del tipo string, aunque sea un número
Cita: console.log(isNaN(1)); // false
console.log(isNaN('1')); // true --> esto es lo que estás recibiendo