Ho un modulo dove, su ogni riga della tabella, ci sono dei campi hidden o meno chiamati ordine[], area[] e id[]

la nomenclatura è necessaria per eseguire lato server il doppio controllo in php se il test in js fallisce

in particolare il codice è il seguente:
Codice PHP:
function boContenutiAreaOrdina(ftotale){
    var 
errMsg '';
    var 
conta 0;
    
valori = new Array(totale);
    var 
confronta_valori true;

    
titolo_errore "Si sono verificati i seguenti errori:\n\n";
    
errore1 "- Tutte le aree devono avere un nome.\n";
    
errore2 "- Ogni area deve avere un nome diverso dalle altre.\n";

    if (
totale 1){
        for (
valori.length i++){
            
valori[i] = f.area[i].value;
            if (!
controlla(f.area[i].valuetrue))
                
conta++;
        }
        
        for (
valori.length i++){
            for (
ii ii valori.length ii++){
                if (
!= ii){
                    if (
valori[i] == valori[ii]){
                        
confronta_valori false;
                        break;
                    }
                }
                if (!
confronta_valori)
                    break;
            }
        }
    }else{
        if (!
controlla(f.area.valuetrue))
            
conta++;
    }
    
    if (
conta 0)
        
errMsg += errore1;
    if (!
confronta_valori)
        
errMsg += errore2;

      if (
errMsg != ''){
        
errMsg titolo_errore errMsg;
        
alert(errMsg);
        return 
false;
    }

Il problema è che mi da un errore con il campo area, in particolare:
Errore: f.area is undefined
File sorgente: http://localhost/include/bo_script.js - Riga: 99

qualcuno potrebbe aiutarmi su come modificare il codice? prima del non funzionamento, controllava egregiamente e i campi del form non finivano in []