Visualizzazione dei risultati da 1 a 7 su 7

Discussione: OnKeyPress

  1. #1
    Utente di HTML.it L'avatar di antosto
    Registrato dal
    Nov 2002
    Messaggi
    112

    OnKeyPress

    Ciao Ragazzi

    vi spiego cosa ho in mente:
    vorrei crearmi una funzione per "impedire" la pressione di alcuni tasti su di un campo Input. Ovvero se sono in presenza di un campo numerico e premo delle lettere, tramite l'evento OnKeyPress, non le faccio comparire; al contrario se premo una cifra la visualizzo.

    C'è solo un problema...
    ... non ho capito come richiamare il tasto che ho premuto da tastiera!!!


    Necessito Aiuto

  2. #2
    Fai il controllo sull'ultimo valore inserito...
    Ogni volta che si preme un tasto prendi l'ultima lettera della stringa e controlli se è una lettera o un numero.
    La vita e' a colori, ma il bianco e nero e' piu' realistico...

  3. #3
    Utente di HTML.it L'avatar di antosto
    Registrato dal
    Nov 2002
    Messaggi
    112
    Originariamente inviato da dedoweb
    Fai il controllo sull'ultimo valore inserito...
    Ogni volta che si preme un tasto prendi l'ultima lettera della stringa e controlli se è una lettera o un numero.
    No così non funziona perchè l'evento OnKeyPress parte prima che il carattere venga effettivamente messo nel campo e quindi l'ultimo carattere non è quello premuto.


    Si deve fare in un altro modo.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    onkeyup
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it L'avatar di antosto
    Registrato dal
    Nov 2002
    Messaggi
    112
    Originariamente inviato da Mich_
    onkeyup
    Facendo così funziona ma l'effetto grafico non è dei migliori.

    Ovvero si vede per qualche frazione di secondo il carattere e poi scopare.

    Non si può ovviare???

  6. #6
    Utente di HTML.it L'avatar di antosto
    Registrato dal
    Nov 2002
    Messaggi
    112
    Ecco cosa ho fatto:

    codice:
    <input type="text" name="prezzo" size="27" onchange="vbscript:formattazione prezzo" onkeyup="vbscript: validatore prezzo,'float'">

    codice:
    function formattazione(C1)
    	trovato=0
    	txt=cstr(C1.value)
    	if len(txt)=0 then 
    		C1.value=0
    	else
    		for i=1 to len(txt)
    		  c=mid(txt,i,1)
    		  if c="." then trovato=trovato+1
    		  if c="," then trovato=trovato+1
    		next
    		if trovato=2 then
    			C1.value=Replace(C1.value,".","")
    		else
    			C1.value=Replace(C1.value,".",",")
    		end if
    	end if
    	C1.value=FormatNumber(C1.value,2)
    end function
    
    function validatore(campo,tipo)
    	txt=cstr(campo.value)
       	campo.value=""
       	for i=1 to len(txt)
    	    c=mid(txt,i,1)
    	    errore=0
    	    select case lcase(tipo)
    	    	case "int"
    			    if not isnumeric(c) then errore=1
    	    	case "float"
    			    if not isnumeric(c) and c<>"." and c<>"," then errore=1
    		end select
    	    if errore=0 then campo.value=campo.value&c
       	next
    end function
    Adesso però l'evento onChange non parte più, perchè???

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    166
    prova con onKeyUp..

    <INPUT TYPE=\"text\" NAME=\"valore1\" onKeyUp=\"Controllo_Numerico(this);\">

    dove la function è:



    function Controllo_Numerico(campo) {
    chrOk = '0123456789'
    o = campo.value;
    a = o.charAt(o.length-1);
    if (chrOk.indexOf(a)==-1) {
    campo.value=o.substr(0,o.length-1);
    if (campo.name=='ORA_INI_ORE')
    alert('ATTENZIONE! Sono previsti solo numeri per il campo valore1');
    }
    }


    in questo modo se premi un tasto non numerico ti viene visualizzato l'errore e ti viene cancellato l'ultimo carattere digitato. :mavieni:

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.