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

