PDA

View Full Version : [HTML/Javascript]Agli inizi...


GreenPower
21-12-2012, 18:44
è un po' di tempo che non posto su questo forum...
non so se la sezione è giusta, casomai spostatelo :S

ho iniziato ad interessarmi di HTML e, provando a costruire un file HTML, ho iniziato a addentrarmi nel mondo del Javascript...

Ho creato una Textbox in cui si deve scrivere un numero (se si prova a premere un tasto che non sia un numero, compare un messaggio di errore) compreso fra 1 e 10, e premendo un bottone adiacente, stampa a schermo il valore di 2 variabili. Il mio dilemma è questo. Dopo che, come ho già detto sopra, viene restituito il messaggio di errore per aver provato a scrivere una lettera, la lettera stessa rimane nella textbox. C'è un modo per cancellare quella lettera automaticamente, senza cliccare? Ho provato vari metodi, ma non ha funzionato nessuno.


<html>
<head>
<script language="javascript">
function onKeyNumeric(e)
{

if ( ((e.keyCode >= 48) && (e.keyCode <= 57)) || (e.keyCode == 8) )
{
return true;
}
else
{
alert('Scrivi solo numeri!!!')
}
}
function variabili()
{
if (numero.value >10 || numero.value <1) // la doppia barra "||" indica OR
{
alert('scrivi un numero da 1 a 10')
}
else
{



if (numero.value > 5)
//function asd()
//{
//with (document.ghgh) // la funzione "with" crea un documento (sintassi: document.******)
{
a=0
b=1
alert('a = '+ a)
alert('b = '+ b)
}
//}
else
{
a=10
b=20
alert('a = '+ a)
alert('b = '+ b)
}

}
}
</script>
</head>
<body>
<form name="ghgh">
<input type="text" size="36" value="Scrivi un numero da 1 a 10 (compresi)" id="cifra" name="numero" onclick=value="" maxlength="2" onkeydown="return onKeyNumeric(event);" >

<input type="button" value="Quanto valgono a e b?" onclick="variabili()">
</form>
</body>
</html>

wingman87
21-12-2012, 20:36
Hai provato a restituire false?

GreenPower
21-12-2012, 21:41
innanzitutto grazie per aver risposto...

intendi così?
if ( ((e.keyCode >= 48) && (e.keyCode <= 57)) || (e.keyCode == 8) )
{
return true;
}
else
{
alert('Scrivi solo numeri!!!')
return false
}

wingman87
21-12-2012, 22:26
Esatto, in teoria in quel modo l'handler dell'evento di default non dovrebbe essere scatenato. L'handler di default potrebbe essere appunto quello che scrive all'interno del textbox. Dico potrebbe perché non ne sono sicuro in quanto oltre all'evento "key down" so che c'è anche un evento "key up" e "key pressed" e sinceramente dovrei documentarmi un po' per capire meglio cosa fanno e come lo fanno...

GreenPower
22-12-2012, 15:33
perfetto, grazie mille era quello il prolema ^^

Potete chiudere