prova a testare anche lo stato undefined.
Ora mi sfugge la sintassi esatta, dovresti poi controllare in rete se ci vuole undefined con o senza apici:

if (f.messaggio.value.length != 0 &&
(f.messaggio.value.length != undefined || f.messaggio.value.length != 'undefined')
){