Non è un po' eccessivo richiamare la funzione ad ogni carattere digitato? Cioè, se ho un form con 10 campi, e ognuno di essi ha un minimo di 5 caratteri (direi anche 10 caratteri), la funzione viene richiamata 50/100 volte. Considerando anche che non ha nessuna variabile di controllo per evitare di addentrarsi nella funzione, e vuol dire che per 50/100 volte conta gli input, entra nel for, cicla 10 volte, e al suo interno un if che cicla chissà quante altre volte ripetendo sempre la stessa cosa (da quanto ho capito entra ad ogni giro settando sempre a disabled il submit, per ogni carattere premuto).
Considerando anche che in un form di registrazione (penso si tratti di questo), non bastano i controlli fatti per i campi in generale, ma ne servono di specifici (come ad esempio il formato dell'email, la lunghezza minima di username, la lunghezza minima della password, caratteri esclusi per la password).
Penso che separando in più pezzetti, cioè funzioni relative ad ogni campo, con un contatore che indica se ci sono campi incompleti o no, si possa raggiungere un buon risultato (di sicuro non come ho implementato io quest'idea, che è veramente pessima )

Qualcosa di più performante? Tempo fa ho fatto un sistema di validation form onthefly, ma non ero riuscito ad implementare anche la disabilitazione/abilitazione del submit (o meglio, non ho voluto implementarlo perchè si poneva lo stesso problema di questa funzione, cioè un eccessivo carico di chiamate della funzione, e data l'urgenza della consegna, ho lasciato perdere la ricerca per la risoluzione del problema).
Adesso sto lavorando ad un altro progetto, e non sarebbe male implementare qualcosa di performante per l'abilitazione/disabilitazione del submit, unito al validation form che già ho.

Qualcuno ha qualche idea?