Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072

    Field validator e formato numerico

    Ciao a tutti, o un campo in cui a volte viene indicato il separatore dei decimali col "." invece che con ","

    Esiste un validator (o altro) che mi consente di risolvere questo problema?

    Grazie!!

  2. #2
    regularexpressionvalidator e scriverci dentro l'espressione regolare che fa al caso tuo: numeri positivi, negativi, separati dal punto, dalla virgola ecc.

    Puoi trovare qualcosa di già pronto all'uso qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Eh ci avevo provato

    ma non capisco come gestire il mio problema... ovvero impedire che venga inserito un numero col "." ma solo con "," (e una sola virgola)

    Grazie

  4. #4
    Quindi tu vorresti che il campo non accetti proprio la pressione del "."?
    Se ho ben capito allora dovresti creare lato client una funzione javascript che impedisca l'inserimento di caratteri non consentiti (nel tuo caso può essere il "." ma anche tutti i caratteri alfabetici ed i segni di punteggiatura al netto, ovviamente, della ",").

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Si esatto, come ho già scritto diverse volte, voglio evitare che venga inseriro il ".".

    Ma anche googlando non ho ancora trovato una soluzione

  6. #6
    In un javascript puoi inserire la seguente funzione
    codice:
    function isNumberKey(evt)
    {
        var charCode = (evt.which) ? evt.which : event.keyCode
        if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 46)
            return false;
        return true;
    }
    occhio al charCode !=46 perchè, se non ricordo male, dovrebbe essere il codice ASCII del punto. Dovresti sostituirlo con la virgola.
    E' molto banale come funzione quindi puoi provvedere ad adattarla a seconda delle tue specifiche necessità.
    Per maggior sicurezza tuttavia io lascerei anche la validazione via regularexpression ed inserirei anche un customvalidator che effettui una ulteriore validazione allo scatenarsi dell'evento ServerValidate.

  7. #7
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    C'è anche questo dell'AjaxControlToolkit:

    http://www.asp.net/ajax/ajaxcontrolt...edTextBox.aspx

    dovrebbe risultare, alla fine, così:
    codice:
           <asp:ScriptManager ID="Smanager" runat="Server"></asp:ScriptManager>
           
           <asp:TextBox ID="tbImporto" runat="server" /> 
           
           <AjaxControlToolkit:FilteredTextBoxExtender 
             ID="ftbe"        
             TargetControlID="tbImporto"         
             runat="server" 
             ValidChars=","
             FilterType="Numbers,Custom"> 
           </AjaxControlToolkit:FilteredTextBoxExtender>

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Grazie mille!! Provo le vostre soluzioni!!

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Ho provato a seguire i vostri suggerimenti...

    l'esempio con ajax mi sembrava il più semplice ma nella mia webapplication non ho installato le ajaxtoolkit, quindi non saprei come fare

    per quanto riguarda l'esempio js, nella pagina html che viene generata, il mio campo si chiama

    <input name="ctl00$Main$tbPeso" type="text" value="0" id="ctl00_Main_tbPeso" class="Testo8" style="width:35px;" />


    come devo modificare il codice JS per gestirlo??


    codice:
    function isNumberKey(evt)
    {
        var charCode = (evt.which) ? evt.which : event.keyCode
        if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 46)
            return false;
        return true;
    }

    Grazie!!

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Come potrei, modificando nel codebehind il textbox, che poi nell'HTML venga generato questo?


    codice:
    <input name="ctl00$Main$tbPeso" type="text" value="0" id="ctl00_Main_tbPeso" class="Testo8" style="width:35px;" onkeyup="if(this.value.indexOf('.')!=-1){this.value=this.value.replace('.',',')}" onchange="if(this.value.indexOf('.')!=-1){this.value=this.value.replace('.',',')}" />
    grazie mille

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.