Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    filtrare i dati digitati-problema tabulatore con firefox

    Per filtrare i dati durante la digitazione nei varii campi, uso il codice di sotto.
    Funziona con IE7, Opera9 e Firefox2.
    Però, con Firefox non funziona più il tasto tab per spostarmi da un campo all'altro.
    Se qualcuno mi desse una mano, gliene sarei davvero grato.


    codice:
    document.onkeypress = function(e)
        {
    	    var code;
    	    if (!e) var e = window.event;
    	    if (e.keyCode) code = e.keyCode; 
    	    else if (e.which) code = e.which;
    	    var character = String.fromCharCode(code);
    	    var target = (e.target)?e.target:e.srcElement;
    	    var id = target.id;
    	    var CorrenteSeparatoreDecimale = '<%#l.CorrenteSeparatoreDecimale%>'.charCodeAt(0);
        	
    
    	    //integer
    	    if(id == "_text1" || id == "_txt_data_documento" )
    	    {
    		    if ( !((code >= 48 && code <= 57 ) || code == 8 || code == 37 || code == 39 || code == 36 || code == 35)  ) 
    		    {
    			    if (window.event) 
    			    {
    				    e.returnValue = false;
    				    e.cancelBubble;
    			    }
    			    else
    			    {
    				    if(e.preventDefault) e.preventDefault;
    				    return false;
    			    }
    		    }
    	    }
    	    //float
    	    else if(id == "_text2" || id == "_txt_data_documento" )
    	    {
    		    if ( !((code >= 48 && code <= 57 ) || code == CorrenteSeparatoreDecimale || code == 8 || code == 37 || code == 39 || code == 36 || code == 35)  ) 
    		    {
    			    if (window.event) 
    			    {
    				    e.returnValue = false;
    				    e.cancelBubble;
    			    }
    			    else
    			    {
    				    if(e.preventDefault) e.preventDefault;
    				    return false;
    			    }
    		    }
    	    }
    	    //data
    	    else if(id == "c_data_di_nascita" )
    	    {
    		    if ( !((code >= 48 && code <= 57 ) || code == 47 || code == 8 || code == 37 || code == 39 || code == 36 || code == 35)  ) 
    		    {
    			    if (window.event) 
    			    {
    				    e.returnValue = false;
    				    e.cancelBubble;
    			    }
    			    else
    			    {
    				    if(e.preventDefault) e.preventDefault;
    				    return false;
    			    }
    		    }
    	    }
    
        
        };
    Pietro

  2. #2
    A parte che non capisco
    Codice PHP:
    document.onkeypress 
    ho fatto un veloce copia incolla
    ma il tab su FF mi funziona.




    PS.
    Lo so che non è l'occasione giusta
    ma un po di refactoring del codice
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    metti alcuni TextBox con i suoi id.
    Nel codice, dopo il commento //integer, valorizza quegli id

    if(id == "_text1" || id == "_txt_data_documento" )


    il tab non funziona quando entra in quei textbox

    inoltre non funziona il canc, perchè ha codice 46, uguale al punto, che è filtrato (intero)

    fammi sapere
    Pietro

  4. #4
    devi aggiungere il codice del tab (9) tra i code che non vanno filtrati:

    ad esempio il primo:

    codice:
    if ( !((code >= 48 && code <= 57 ) || code == 8 || code == 37 || code == 39 || code == 36 || code == 35)  )
    diventa:

    codice:
    if ( !((code >= 48 && code <= 57 ) || code == 8 || code == 9 || code == 37 || code == 39 || code == 36 || code == 35)  )

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: Sì: è la prima cosa che ho pensato. Ma non sono tranquillo.

    Per esempio, gli interi non fanno passare il punto, ossia il carattere 46. Ma questo vuol dire che, con Firefox, non funziona il tasto canc, mentre va con opera e IE.

    Perciò credo e spero che ci sia qualche altro modo più serio di quello che ho usato io.

    Ciao
    Pietro

  6. #6
    Mah così sembrerebbe funzionare
    devi intercettare code 9 (tab)

    Codice PHP:
     if(id == "_text1" || id == "_txt_data_documento" )
            { 
                if(
    code!=9){
                    if ( !((
    code >= 48 && code <= 57 ) || code == || code == 37 || code == 39 || code == 36 || code == 35)  ) 
                    {
                        if (
    window.event
                        {
                           
    e.returnValue false;
                           
    e.cancelBubble;
                        }
                        else
                        {
                            if(
    e.preventDefaulte.preventDefault;
                            return 
    false;
                        }
        
                    }
                }
            } 

    altro non saprei







    [Edit]
    Ops non avevo visto il post
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Vi ringrazio
    Pietro

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 © 2026 vBulletin Solutions, Inc. All rights reserved.