Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783

    input con solo numeri e carriage return

    tipico script per consentire solo numeri:
    codice:
    <script type="text/javascript">
        function onlyNumbers(evt) {
          var theEvent = evt || window.event;
          var key = theEvent.keyCode || theEvent.which;
          key = String.fromCharCode( key );
          var regex = /[0-9]/;
          if( !regex.test(key) ) {
            theEvent.returnValue = false;
            if(theEvent.preventDefault) theEvent.preventDefault();
          }
        }  
    </script>
    e per consentire anche l'invio (carriage return)?

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Con var regex = /[0-9\r\n]/; ?

    PS : Il tuo codice accetta i numeri che si trovano in alto sulla tastiera ma non quei del tastierino numerico. Di più accetta i caratteri sotto i numeri.

    dilenticavo. Non si puo' usare il tasto indietro.
    Ultima modifica di badaze; 28-10-2016 a 21:02
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    grazie.

    ma sai che chrome e opera mi accettano "indietro" "frecce" e "canc" (ma non FF)?
    e in tutti, il tastierino numerico, funziona

    nel caso d'uso mi va bene così: uso il reset e sono a posto.

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Un'alternativa può essere quella di usare direttamente il keyCode e confrontarlo con un array di valori consentiti:
    codice:
    function onlyNumbers(evt) {
      evt = evt || window.event;
      var key = evt.keyCode || evt.which;
      if( ![48,49,50,51,52,53,54,55,56,57,96,97,98,99,100,101,102,103,104,105,13,8,46,37,38,39,40,35,36].includes(key) )
        return false;
    }
    Certo, non è il massimo definire ad uno ad uno tutti i valori, ma in questo modo è possibile specificare anche diversi altri tasti (enter, backspace, canc, tasti frecca, ecc.).

    Analogamente si potrebbe usare la proprietà key dell'oggetto event, e una regex che specifica i valori consentiti:
    codice:
    function onlyNumbers(evt) {
      evt = evt || window.event;
      if( !/[0-9]|Enter|Backspace|Delete|ArrowRight|ArrowUp|ArrowLeft|ArrowDown|End|Home/.test(evt.key) )
        return false;
    }
    In questo caso, la proprietà key non è supportata da Safari e non so da quale altro browser.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    ottimo, grazie.

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.