JavaScript - Capturar que tecla se toca

 
Vista:

Capturar que tecla se toca

Publicado por Federico Acevedo (2 intervenciones) el 23/09/2001 20:41:14
Hola a Todos .. Tengo un campo (Input) en donde escribo un nombre, y quiero que a medida que escribo me vaya buscando un otro campo (select) los nombre que coinciden ... Entonces puse codigo en el onKeyPress del campo imput, pero este evento me devuelve el valor del campo sin la ultima tecla presionada .... hay forma de saber que tecla se presiono? Lo que necesito es saber que valor tiene el campo a medida que escribo, el evento OnChange, solo se ejecuta cuando salgo del campo ... asi que no me sirve ... Tiene que ser a medida que se escribe ... Desde ya muchas gracias a todos.

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Capturar que tecla se toca

Publicado por Cesr (1 intervención) el 01/05/2007 16:49:11
usa onKeyUp
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Capturar que tecla se toca

Publicado por Lithos (1 intervención) el 30/08/2007 17:29:07
Mira estas dos funciones [shortcut() y init()] que en algun momento encontre, es excelente ojala te sirva, la funcion init(), la llamas desde el evento onLoad(), asi todas las combinaciones que por teclado pulses y que tengas dentro de la funcion init para capturarlas, las puedes controlar.
Saludos

///====la funcion shortcut() interpreta las combinaciones del teclado=====

function shortcut(shortcut,callback,opt) {
//Provide a set of default options
var default_options = {
'type':'keydown',
'propagate':false,
'target':document
}
if(!opt) opt = default_options;
else {
for(var dfo in default_options) {
if(typeof opt[dfo] == 'undefined') opt[dfo] = default_options[dfo];
}
}
var ele = opt.target
if(typeof opt.target == 'string') ele = document.getElementById(opt.target);
var ths = this;
//The function to be called at keypress
var func = function(e) {
e = e || window.event;
//Find Which key is pressed
if (e.keyCode) code = e.keyCode;
else if (e.which) code = e.which;
var character = String.fromCharCode(code).toLowerCase();
var keys = shortcut.toLowerCase().split("+");
//Key Pressed - counts the number of valid keypresses - if it is same as the number of keys, the shortcut function is invoked
var kp = 0;
//Work around for stupid Shift key bug created by using lowercase - as a result the shift+num combination was broken
var shift_nums = {
" ' " :" ~ ",
"1":"!",
"2":"@",
"3":"#",
"4":"$",
"5":"%",
"6":"^",
"7":"&",
"8":"*",
"9":"(",
"0":")",
"-":"_",
"=":"+",
";":":",
"‘":"\"",
",":"<",
".":">",
"/":"?",
"\\":"|"
}
//Special Keys - and their codes
var special_keys = {
'esc':27,
'escape':27,
'tab':9,
'space':32,
'return':13,
'enter':13,
'backspace':8,
'scrolllock':145,
'scroll_lock':145,
'scroll':145,
'capslock':20,
'caps_lock':20,
'caps':20,
'numlock':144,
'num_lock':144,
'num':144,
'pause':19,
'break':19,
'insert':45,
'home':36,
'delete':46,
'end':35,
'pageup':33,
'page_up':33,
'pu':33,
'pagedown':34,
'page_down':34,
'pd':34,
'left':37,
'up':38,
'right':39,
'down':40,
'f1':112,
'f2':113,
'f3':114,
'f4':115,
'f5':116,
'f6':117,
'f7':118,
'f8':119,
'f9':120,
'f10':121,
'f11':122,
'f12':123
}
for(var i=0; k=keys[i],i<keys.length; i++) {
//Modifiers
if(k == 'ctrl' || k == 'control') {
if(e.ctrlKey) kp++;
} else if(k == 'shift') {
if(e.shiftKey) kp++;
} else if(k == 'alt') {
if(e.altKey) kp++;
} else if(k.length > 1) { //If it is a special key
if(special_keys[k] == code) kp++;
} else { //The special keys did not match
if(character == k) kp++;
else {
if(shift_nums[character] && e.shiftKey) { //Stupid Shift key bug created by using lowercase
character = shift_nums[character];
if(character == k) kp++;
}
}
}
}
if(kp == keys.length) {
callback(e);
if(!opt['propagate']) { //Stop the event
//e.cancelBubble is supported by IE - this will kill the bubbling process.
e.cancelBubble = true;
e.returnValue = false;
//e.stopPropagation works only in Firefox.
if (e.stopPropagation) {
e.stopPropagation();
e.preventDefault();
}
return false;
}
}
}
//Attach the function with the event
if(ele.addEventListener) ele.addEventListener(opt['type'], func, false);
else if(ele.attachEvent) ele.attachEvent('on'+opt['type'], func);
else ele['on'+opt['type']] = func;
}
========================================================================================================================
========================================================================================================================
========================================================================================================================
//== la sgte funcion init(), captura los eventos del teclado que tecleemos========
en caso de querer adicionar una combinacion, simplemente creamos dentro de esta funcion la combinacion deseada
asi: adicionamos otro shortcut("Shift+2",function() pero donde dice "shift+2", colocamos la combinacion qeu queremos.

function init()
{
//para ctrl+E
shortcut("Ctrl+E",function()
{
alert("Has pulsado Control+E");
}
);

//para "Alt+E"
shortcut("Alt+E",function()
{
alert("Has pulsado Alt+E");
}
);
//para "shift+2"
shortcut("Shift+2",function()
{
alert("Has pulsado Shift+2");
}
);

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar