Credevo di aver risolto, invece no

function controllo_codfisc(id_elemento){
if (document.getElementById(id_elemento).value == ''){
document.getElementById('err_'+id_elemento).innerH TML = 'Campo vuoto ';
} else {
var codice_fiscale = Trim((document.getElementById(id_elemento)).value) ;
var fcf=/^[A-Z0-9]$/;
// alert (codice_fiscale);
if( codice_fiscale.length != 16 ){
document.getElementById('err_'+id_elemento).innerH TML = 'Attenzione! La lunghezza del campo non è valida! ';
} else {
if(!fcf.test(codice_fiscale)){
document.getElementById('err_'+id_elemento).innerH TML = 'Attenzione! Inseriti caratteri non validi! ';
} else {
document.getElementById(id_elemento).value = codice_fiscale;
document.getElementById('err_'+id_elemento).innerH TML = 'Valore Inserito '+ document.getElementById(id_elemento).value +' ';
}
}
}
}



Faccio il primo controllo, e se è più corto di 16 lunghezze allora mi restituisce la stringa di errore giusta.
Faccio il secondo e inserisco un carattere non valido (tipo $ % & / £ ) e mi restituisce la stringa giusta
Se però scrivo tutto correttamente, non mi visualizza la stringa scritta in maniera giusta..