Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    297

    RE per controllo decimali

    Ciao a tutti.
    Sto lavorando ad una pagina asp in cui ho un elenco di righe di un catalogo dove, per ogni riga, l'utente puō impostare un prezzo; quindi ho un input text per ogni riga.

    Tramite questa funzione

    function validaRibasso(campo){
    if(campo.value.match(/[^\d\.\,]/) ) {
    var keygen = "<%=keygen%>"
    alert("Attezione! ULTIMO PREZZO: solo valori numerici");
    return false;
    }
    return true;
    }
    faccio scattare un alert sull'onBlur di ogni input text che avvisa se dentro al campo sono stati scritti caratteri diversa da numeri [virgole e punti invece ammessi].
    Quello che non riesco a fare č implementare nella RE che fa il controllo che il numero inserito deve avere al MASSIMO 3 DECIMALI.

    Ho provato ad utilizzare questa

    /^(\d+)?((\.|,)\d{0,3})?$/
    ma proprio non vuol funzionare.
    Chi mi aiuta?
    Grazie
    Franz

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    /^\d*[.,]?\d{0,3}$/
    questa accetta anche "1." che per me č corretta

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    297
    Scusami ma a me proprio non funziona ... :-(
    Se mi sposto da un campo all'altro con onBlur non mi fa nulla ... solo se clicco a caso sullo stage mi parte l'eventuale alert ...

    Quella di prima incompleta appena mi spostavo con il tab funzionava....

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    ma senza il codice che posso dirti?
    immagino che la funzione debba essere circa
    var re = /^\d*[.,]?\d{0,3}$/
    if (!re.test(campo.value)) {
    alert("Attezione! ULTIMO PREZZO: solo valori numerici");
    return false;
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    297
    Scusa se trovo il tempo di rispondere solo ora.
    Ti confermo che utilizzando il tuo ultimo suggerimento sono riuscita a far funzionare il tutto come volevo ...

    Posto per chi avesse lo stesso problema la funzione corretta:

    function validaRibasso(campo, valore){
    var re = /^\d*[.,]?\d{0,3}$/
    if (!re.test(campo.value)) {
    alert("Attezione! ULTIMO PREZZO: solo valori numerici con massimo 3 decimali");
    campo.value = valore; //RIPRISTINO IL VALORE ORIGINALE
    return false;
    }
    }
    Ero io che sbagliavo ad implementare la funzione

    Grazie
    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.