none
Errore di validazione RRS feed

  • Domanda

  • Ciao a tutti,
    ho il seguente problema: in una applicazione MVC 5 ho la necessità che l'utente mi inserisca dei dati numerici con i decimali. Il problema è che se l'utente digita il numero con la virgola mi compare subito un errore che segnala che il campo X deve essere un numero (vedi immagine) .
    Se l'utente digita il numero utilizzando il punto al posto della virgola l'errore non compare ma in fase di validazione va in errore perché si aspetta un numero con la virgola. Ho scoperto che eliminando i file "jquery.validate.*" dalla cartella scripts l'errore in fase di digitazione non compare più e quindi per il momento ho fatto così. La mia domanda è: si può fare in modo che la validazione durante la digitazione si possa applicare anche a notazioni non anglosassoni? Se sì come?

    Grazie.

    Ciao.


    --- Mauri


    • Modificato MauriBS giovedì 27 novembre 2014 10:54
    giovedì 27 novembre 2014 10:52

Risposte

  • Ciao Mauri,
    la RegularExpression che valida il campo numerico è dentro il file /Scripts/jquery.validate.js, precisamente qui:

    // http://jqueryvalidation.org/number-method/
    number: function( value, element ) {
    	return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test( value );
    },
    Questa RegularExpression valida l'inserimento sia del numero con il punto che con la virgola; solo che inserendo un numero decimale con la virgola lui si aspetta tre cifre dopo la virgola, ad esempio: 1,123

    Come vorresti modificare la RegularExpression?

    Ciao

    Paolo Pranzo

    • Contrassegnato come risposta MauriBS giovedì 27 novembre 2014 14:14
    giovedì 27 novembre 2014 13:42

Tutte le risposte

  • Ciao Mauri,
    la RegularExpression che valida il campo numerico è dentro il file /Scripts/jquery.validate.js, precisamente qui:

    // http://jqueryvalidation.org/number-method/
    number: function( value, element ) {
    	return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test( value );
    },
    Questa RegularExpression valida l'inserimento sia del numero con il punto che con la virgola; solo che inserendo un numero decimale con la virgola lui si aspetta tre cifre dopo la virgola, ad esempio: 1,123

    Come vorresti modificare la RegularExpression?

    Ciao

    Paolo Pranzo

    • Contrassegnato come risposta MauriBS giovedì 27 novembre 2014 14:14
    giovedì 27 novembre 2014 13:42
  • Innanzitutto ti ringrazio per la risposta, ho imparato qualcosa di nuovo. Ho provato in effetti ad inserire tre cifre dopo la virgola e l'errore non compare più.
    A questo punto ho modificato la RegularExpression inserendo {1,3} al posto di {3} e adesso funziona tutto perfettamente.

    Ti ringrazio molto per l'aiuto.

    Ciao.


    --- Mauri

    giovedì 27 novembre 2014 14:14