Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    42

    escludere punto dal campo di testo

    Ciao a tutti,
    ho un problema ma non avendo tanta dimestichezza con il javascript non sono riuscito a risolverlo, pur essendo a mio giudizio banale.
    In pratica devo fare in modo che in un campo di testo vengano inseriti solo ed esclusivamente numeri (neanche punto, virgola, ecc...)
    Su questo forum ho trovato questo codice:

    <script language="JavaScript">
    <!--
    function SoloNumeri(campo)
    {
    if (isNaN(campo.value))
    {
    alert("Inserire solo numeri");
    campo.value=campo.value.substr(0, campo.value.length-1);
    }
    }
    -->
    </script>

    Funziona benissimo ma questo controllo --> (isNaN(campo.value)) non mi permette di escludere anche il punto.
    Ho provato ad aggiungere anche il controllo:
    if (isNaN(campo.value) || (campo.value = "."))
    ma non funziona.

    Vi ringrazio tantissimo se mi potreste aiutare a risolvere questo mio problema che spero abbia esposto in modo chiaro.

    ciao a tutti

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    codice:
    function SoloNumeri() {
      if (!campo.match(/^\d+$/)) {
        alert("inserire solo numeri");
      }
    }
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    42
    Non sono ancora riuscire a risolvere...
    in pratica che controllo fa la funzione: campo.match(/^\d+$/)) ?

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    è un espressione regolare: controlla che il valore contenuto in "campo" non sia vuoto e contenga solo ed esclusivamente cifre [0..9] in numero variabile
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    42
    Mi da' errore alla riga 60, che poi sarebbe questa:

    if (!campo.match(/^\d+$/)) {

    La funziona SoloNumeri la richiamo in questo modo:

    <input name="prezzo" type="text" id="prezzo" value="0" onKeyUp="SoloNumeri(this)">

    c'è forse un errore qui?

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    se scrivi SoloNumeri(this) in realtà non gli passi il valore del campo ma un riferimento al nodo del DOM

    devi scrivere SoloNumeri(this.value)

    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    42
    Ok, ho risolto in questo modo:

    <script language="JavaScript">
    <!--
    function SoloNumeri(campo) {
    if (!campo.match(/^\d+$/)) {
    alert("inserire solo numeri");
    form1.prezzo.value=form1.prezzo.value.substr(0, form1.prezzo.value.length-1);
    }
    }
    -->
    </script>

    <input name="prezzo" type="text" id="prezzo" onKeyUp="SoloNumeri(this.value)">

    Funziona benissimo, proprio come volevo.
    Grazie 1000 fcaldera per la tua grande disponibilità e pazienza.

    Un saluto e alla prossima.

  8. #8
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    però questo tipo di validazione mi lascia dubbioso... che succede se scrivi in modo molto veloce? (Prova a battere delle lettere velocemente).

    Potrebbe esserci una certa latenza tra pressione dei tasti e attivazione dell'evento
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  9. #9
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    no, ho provato e in effetti anche premendo più tasti insieme gli eventi singoli non vengono persi...

    però se tu ad esempio premi tre tasti (lettere) contemporaneamente ti appaiono tre alert.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    42
    Azz... hai ragione... mi cancella soltanto l'ultimo carattere digitato, quindi se scrivi tante lettere in modo veloce mi cancella solo l'ultima.

    Hai qualche idea?

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.