Ciao, ti ringrazio per la risposta.
Effettivamente le tue osservazioni sono tutte corrette. Le imprecisioni che noti sono frutto della mia inesperienza e delle continue modifiche al codice googlando in cerca della soluzione. Il codice in origine era privo di questi elementi errati/superflui.
Comunque anche ripulendo il codice, continua ad avere il comportamento anomalo indicato nel primo messaggio.
Grazie a svariati consigli raccolti su internet e a decine di prove, ho fatto dei passi in avanti. Ora su chrome funziona e l'unica modifica fatta è stata quella di sostituire l'alert con un tag span.
Su firefox continua a spostarmi il focus sul campo successivo. Lo stesso codice su Firefox sotto Windows lo imposta correttamente.
Qualche idea?