Controllo importo in Javascript e messaggio di errore
- Aprile 08, 2010
- by
- Donatantonio
La funzione is_importo consente di verificare il corretto formato e valore di un importo (in euro o altra valuta) inserito da un utente mediante un’apposita form.
Immaginiamo un applicazione web che richieda all’utente l’immissione di uno o più valori monetari. Il nostro scopo, e desiderio, è quello di validare tali importi prima che questi siano processati dal resto dell’applicazione. Controllando appunto che il valore sia numerico e che rientri in un range da noi prestabilito.
La funzione is_importo successivamente descritta richiede i seguenti parametri di input:
- L’importo da controllare
- La soglia minima ammissibile per tale importo (se vuoto vale 0)
- La soglia massima ammissibile per tale importo (se vuoto vale infinito)
- L’id del tag html che visualizzerà l’eventuale messaggio di errore
Ecco il codice della funzione:
function is_importo(importo,importo_min,importo_max,id_tag){ if(isNaN(importo)){ document.getElementById(id_tag).innerHTML='Importo non valido!'; return false; } if(importo_min=="" || importo_max==""){ if(importo<=0){ document.getElementById(id_tag).innerHTML='Valore importo non valido!'; return false; }else{ return true; } }else{ if(isNaN(importo_min) && isNaN(importo_max)){ return false; }else{ if(importo>=importo_min && importo<=importo_max){ return true; }else{ document.getElementById(id_tag).innerHTML='Valore importo non valido!'; return false; } } } }
Vediamo con un esempio come richiamare opportunamente questa funzione:
<script type='text/javascript'> if(is_importo('1500','0','2000','errore')==true){ // faccio qualcosa... }else{ // importo non corretto, quindi faccio altro... } </script>
Nell’esempio precedente sto verificando che l’importo (1500) sia un valore compreso tra (0) e (2000), in caso di errore chiedo che il messaggio venga visualizzato all’interno di un blocco identificato dall’id errore. All’interno della pagina html dovrò opportunamente dichiarare tale blocco (ad esempio un div o uno span) e quindi collegare il campo di input alla funzione is_importo.
Infine altri esempi di chiamata alla funzione:
is_importo('1500.60','-2000','2000','errore'); // range con valori negativi is_importo('3789.99','0','3000','errore'); // valori con virgola is_importo('10000','','','errore'); // verifica senza vincolo di range