if ((isNaN(passwd)) || (passwd == "") || (passwd == "undefined"))

questo controllo non va tanto bene, infatti qualunque cosa tu inserisca nel campo password(quindi anche se la password è un numero), questa password sarà una stringa (anche una stringa di cifre,ma sempre stringa è). Nell'if tu stai dicendo "se la password non è un numero, visualizza il messaggio di errore"; il problema è che la password non è un numero,mai(infatti è una stringa), quindi ti va sempre in errore.