Ver Mensaje Individual
  #27 (permalink)  
Antiguo 03/11/2010, 09:12
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Pasar digito de un campo text a otro

@sysmadryn,

en ese ejemplo particular parece ser que onkeyup no funciona pero es una suposicion erronea. el problema esta en el cartel de alerta. onkeypress y onkeyup se lanzan cuando se levanta una tecla, eso ha funcionado igual en todos los navegadores. lo que sucede en este caso particular -a mi entender- es que al aparecer el primer alerta (onkeypress) el script se detiene y para continuar hay que cerrar el alerta. sin embargo, de alguna forma onkeyup no puede capturar el evento por una de dos razones: porque el evento generado ya se perdio al aparecer el cartel, o porque se ha generado un nuevo evento. en fin, para demostrar que si deberia funcionar, realiza otro experimento que no sea con ventanas modales que interrumpan el proceso de javascript. el siguiente codigo es un script que habia escrito para determinar los valores de ciertas propiedades. en esencia, utiliza tres eventos: onkeydown, onkeyup, y onkeypress. fijate que sin ninguna ventana modal, los tres eventos se disparan correctamente.
Código:
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'

'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> 
<html xmlns='http://www.w3.org/1999/xhtml'><head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> 
<title>Key Events</title> 
<script type='text/javascript'> 
function key(evt, id) {
var evt = evt || event;
var inputs = document.getElementById(id).getElementsByTagName("input");
inputs[0].value = evt.keyCode;
inputs[1].value = String.fromCharCode(evt.keyCode);
inputs[2].value = evt.which;
inputs[3].value = String.fromCharCode(evt.which);
}
 
document.onkeypress = function(evt){
key(evt, "press");
}
 
document.onkeyup = function(evt){
key(evt, "up");
}
 
document.onkeydown = function(evt){
key(evt, "down");
}
</script> 
<style type='text/css'> 
body{
font-family:georgia;
background:#111 url(firebug.jpg) no-repeat -2em 21em;
color:#fff;
margin:1em;
margin-left:4em;
}
 
p{
text-align:right;
width:40em;
}
 
.section{
border-top:1px dotted #333;
padding-top:2em;
}
 
span{
display:inline-block;
width:6.65em;
text-align:center;
}
 
input{
width:8em;	
text-align:center;
background:transparent;
border:0;
}
 
p.section input{
width:31.5em;
padding:.25em;
background:#333;
border:1px solid #666;
}
 
input, textarea{
color:#fff;
font-family:monospace;
}
 
h1{
font-size:1.75em;
border-bottom:1px solid #333;
}
 
h2{
float:left;
font-weight:normal;
padding-top:.75em;
}
</style> 
</head> 
 
<body> 
<h1>Keys</h1> 
<h2>onkey-</h2> 
<p class="header"><span>keyCode</span> <span>char key</span> <span>which</span> <span>char which</span></p> 
<p id="down">down: <input readonly="readonly" /> <input readonly="readonly" /> <input readonly="readonly" /> <input readonly="readonly" /></p> 
<p id="press">press: <input readonly="readonly" /> <input readonly="readonly" /> <input readonly="readonly" /> <input readonly="readonly" /></p> 
<p id="up">up: <input readonly="readonly" /> <input readonly="readonly" /> <input readonly="readonly" /> <input readonly="readonly" /></p> 
<h2>Type in box</h2> 
<p class="section"><input /></p> 
</body></html>
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.