Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    1,199

    funzione controllo campo numerico

    Ciao a tutti, ho trovato questa funzioncina che controlla che permette di scrivere in un definito campo solo numeri.


    codice:
    
    function soloNum(){
    	   var karact = event.keyCode;
                          var elem = document.activeElement.name;
    	   if((((karact<48) || (karact>57)) && ((karact<96) || (karact>105))) && (karact!=8) && (karact!=9) && (karact!=16) && (karact !=46)){
    		event.returnValue = false;
    	   }else{
    	   }
    }

    Io ho un .js con altri controlli di campi di testo ect.ect.

    la sistemo lì

    Altra cosa da dire e che i miei controlli di solito scattano quando do invio e voglio lanciare la form, aprendo degli alert.

    Come faccio a richiamare solo sul mio campo (telefono) questa funzione ???

  2. #2
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Quando costruisci l'elemento gli assegni la funzione nell'evento
    onBlur che è l'evento dell'abbandono del campo, il lost focus,
    per intenderci.

    codice:
        ONBLUR="javascript:soloNum()"
    Ciao, Brainjar

  3. #3
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Scusa non ci vuole lo spazio tra java e script.
    codice:
     ONBLUR="javascript:soloNum()"
    Ciao, Brainjar

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    1,199
    questo è il codice della pagina ma non funziona

    che sbaglio???

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script>
    function soloNum(){
    	   var karact = event.keyCode;
    	   var elem = document.activeElement.name;
    	   if((((karact<48) || (karact>57)) && ((karact<96) || (karact>105))) && (karact!=8) && (karact!=9) && (karact!=16) && (karact !=46)){
    		event.returnValue = false;
    	   }else{
    	   }
    }
    </script>
    </head>
    
    <body>
    <input type="text" name="telefono" onBlur="javascript:soloNum()">
    
    <input type="text" name="pippo">
    </body>
    </html>

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    1,199
    ho levato lo spazio tra java script non guardare come l'ho scritto nel codice che ti ho dato

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ci sono vari problemi in quel codice.

    Anzitutto un'incongruenza: usi l'evento onblur (che scatta togliendo il focus al campo), e poi vai a testare l'ultimo tasto premuto.

    Comunque i keyCode usali solo se strettamente necessario: sono interpretati inmodo diverso nei vari browser.

    Altro problema: un campo input senza form: in qualche browser non funziona.


    Vedi queste modifiche (nota anche la sintassi):
    codice:
    <body>
      <form action="#">
        <input type="text" name="telefono" onblur="soloNum(this);" />
    
        <input type="text" name="pippo" />
      </form>
    </body>
    
    che deve corrispondere al JS (da inserire nella head)
    
    function soloNum(cc) {
      if(cc.value.match(/^\+*\d+$/) ) {
        return true;
      } else {
        alert("solo numeri - eventualmente preceduti da +");
        cc.value = "";
        return false;
      }
    }
    Se vuoi permettere gli spazi nel numero, la RegExp diventa:
    /^\+*[\d ]+$/
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.