Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    101

    [JAVA] inserire decimali con la ',' in una Form

    ho una semplice jsp che contiene una form

    <form>
    <input type=text name="name" />
    <input type=text name="surname" />
    <input type=number name="quota" />
    </form>

    dato che quota è un double devo eseguire un controllo che venga inserito un double con massimo tre cifre decimali altrimenti l'utente deve reinserirelo.
    non solo ma la form deve permettere un inserimento con il carattere ','

    accetto consigli

    cordialmente

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Ho spostato la discussione nel forum dedicato a Java.
    In futuro, poni qui le tue domande relative a questo linguaggio.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    puoi fare cosi:
    codice:
    ...
    Double q;
    String quota=request.getParameter("quota");
    if (!quota.contains(","))
    //reinserisci quota: numero errato
    else
    {
    int virgola=quota.indexOf(",");
    String decimali=quota.subSequence(virgola+1,quota.lenght());
    if (decimali.lenght()>3)
       //reinserisci quota
    else
    {
    q=Double.valueOf(quota);
    //continua
    }
    }
    ...
    dovrebbe andare cosi!!!

  4. #4
    Non ho ben capito se devi permettere SOLO l'inserimento con la virgola oppure va bene ANCHE con la virgola.

    pagina del form (form.jsp):
    codice:
    <form action="controllo.jsp">
    <input type=text name="name" value="<%=request.getParameter("name")==null?"":request.getParameter("name")%>" />
    <input type=text name="surname" value="<%=request.getParameter("surname")==null?"":request.getParametersurname")%>" />
    <input type=text name="quota" value="<%=request.getParameter("quota")==null?"":request.getParameter("quota")%>"/> (non ho mai visto il type "number", credo proprio non esista)
    </form>
    pagina del controllo / inserimento (controllo.jsp):
    codice:
    <%
         //... 
         String quota = request.getParameter("quota");
         if (quota==null){
           pagecontext.forward("form.jsp");
           return;
         }
    
         //controllo quota
         quota = quota.replace(',','.');
         if (quota.indexOf(".")>-1 && quota.split(".")[1]<=3){
            // la quota è corretta e la uso
         }
         else{
           // la quota non è corretta, cioè non ha nè punti nè virgole, oppure ha più di 3 cifre decimali quindi la faccio reinserire
           pagecontext.forward("form.jsp");
         }
    %>
    magari c'è qualche errorino qua e là perchè non l'ho provata ma la logica dovrebbe ndare se ho capito il tuo problema

    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  5. #5
    o se no puoi usare le regex, molto comode...non ci avevo pensato:
    codice:
    <%
      String quota = request.getParameter("testo");
      if(quota==null){
        pagecontext.forward("form.jsp");
        return;
      }
      
      quota = quota.replace(',','.');
      String regex = "\\d*\\.\\d{1,3}";
      Pattern pattern = Pattern.compile(regex);
    
      if ( pattern.matcher(quota).matches()){
        //è nel formato che voglio
      }
      else{
        //non lo è
      }
    %>
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  6. #6
    scusa ma validare il tuo codice con il JavaScript senza passare il controllo al server che ne pensi????
    Let's your dream came true!

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Originariamente inviato da ale500
    scusa ma validare il tuo codice con il JavaScript senza passare il controllo al server che ne pensi????
    Conviene eseguire SEMPRE la validazione lato server dopo l'eventuale validazione via javascript, per evitare brutte sorprese
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  8. #8
    si vabbè...
    Let's your dream came true!

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.