Visualizzazione risultati 1 fino 5 di 5

Discussione: Tipo intero in JAVASCRIPT

  1. #1
    lionalex non è connesso Utente attivo
    Data registrazione
    10-12-2002
    Messaggi
    446

    Post Tipo intero in JAVASCRIPT

    Io ho un form del tipo

    Codice HTML:
    <script language="javascript">
      function controlla(){
      x=document.nome;
      if (x.dato1.value>0){
       alert ("Inserimento non valido");
       return false;
      }
    
      return true
    
    }
    </script>
    <form name="nome" onsubmit="return controlla();".....>
    <input type="text" name="dato1">
    ...
    ...
    </form>
    Così controllo che il valore inserito sia maggiore di "0". Se volessi controllare
    che il valore inserito sia un numero e non un carattere, come si fa il controllo in JAVASCRIPT ??? Premetto che conosco molto poco JAVASCRIPT e magari questa è anche una domanda poco utile, però a me serve saperlo per un controllo che devo fare in un form.
    Chi troppo vuole....vuole LionAlex...

  2. #2
    Guest

    Predefinito

    potresti creare un if tipo
    if(x.dato1.value=0 || x.dato1.value=1 || x.dato1.value=2 ....){

  3. #3
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Per un controllo veloce (senza troppe finezze) potresti sfruttare la funzione javascript
    isNaN(valore)

    NaN sarebbe Not-A-Number, quindi il risultato è inverso: ritorna true se il valore NON può essere interpretato come numero valido e false se è un numero.
    Dicevo poca finezza visto che isNaN() dà come numeri validi anche decimali e altre espressioni.
    Altrimenti potresti sfruttare parseInt(stringa) sovrascrivendolo al valore del campo (elimina eventuali caratteri e spazi, per info qui: http://www.devguru.com/Technologies/.../parseint.html)

    riassumendo, puoi riscrivere la funzione così:

    Codice HTML:
    <script language="javascript">
     function controlla(){
      var frm=document.nome;
      frm.dato1.value = parseInt(frm.dato1.value);
      var valore = frm.dato1.value;
      if (isNaN(valore)){
        alert ("Il valore inserito non è un numero valido!");
      }else if (valore > 0 && valore <= 10){
        alert ("Ok, il numero è nell'intervallo giusto");
        return true;
      }else
        alert ("Inserimento non valido");
      return false;
    }
    </script>
    In questo esempio oltre a controllare la validità come numero, controlla nell'unico risultato positivo (con return true) che il numero valido sia anche compreso tra 1 e 10 (un controllo qualsiasi, poi vedi tu, modifica come ti serve).
    Ultima modifica di heracleum : 27-11-2005 alle ore 17.37.49
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  4. #4
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito A proposito di parseInt...

    ... c'è un piccolo problema con alcune versioni di JS, te lo illustro qui di seguito:
    Codice:
    var a = parseInt ("83")   // a = 83
    var b = parseInt ("xy")   // b = "NaN"
    var c = parseInt ("8u")   // c = 8 ==> SBAGLIATO!
    quello che ti consiglio di fare è implementare da te una funzione parseInt() che realizzi quanto detto, questa è la prima che mi viene in mente (che, tra l'altro, utilizza in modo "sicuro" le funzioni standard):
    Codice:
    function myParseInt (numberString)
    {
       // elimina gli spazi iniziali
       while (numberString.indexOf (" ") == 0)
          numberString = numberString.substring (1)
       // elimina gli spazi finali
       while (numberString.lastIndexOf (" ") == numberString.length () - 1)
          numberString = numberString.substring (0, numberString.length () - 1)
       // inizia la conversione
       var n = 0, i = 0, sign = 1
       while (i < numberString.length ())
       {
          var ch = numberString.charAt (i)
          if (ch == "-" && i == 0)
             // segno negativo: cambia il segno al numero
             sign = -1
          else if (isNaN (ch))
             // carattere non valido: non è un numero, punto e basta!
             return NaN
          else
             // aggiunge la nuova cifra al numero
             n = n * 10 + parseInt (ch)
       }
       return sign * n
    }
    il risultato di questa funzione è il numero convertito, se questo è un intero, oppure "NaN" se questo non lo era.

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  5. #5
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Beh è più o meno simile, solo con un controllo "invertito" e un po' più di elaborazione (mentre in quello da me indicato usa solo due funzioni native e basta) cioè:
    nel mio codice ti AUTOcorregge le minkiate scritte, nel limite del possibile (se scrivi "A" ovvio che fallisce, se scrivi " a1" si prende per buono 1),
    questo invece segnala l'errore ad ogni minkiata, ed è certo anche preferibile se si vuole un controllo rigido.
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •