Holas les cuento la idea es la siguiente....
tengo una funcion que corre de lo mejor, pero el problema que es un poco estatica la idea es hacerla un poco mas dinamica y usable..... veamos un poco de codigo para entender mejor
Esta es la primera funcion que hice
Código HTML:
<input type='text' id='uno' value='texto' onkeydown='next(event,\'dos\');'>
<input type='text' id='dos' value=''>
la funcion
Código HTML:
function next(e, f, n){
tecla = (document.all) ? e.KeyCode : e.which
if(tecla == 13){
document.getElementById(n).focus();
document.getElementById(n).select();
}
}
lo que hace.... al presionar enter en el primer input (tecla=13) salta al siguiente input.
la funcion mejorada
Código HTML:
<input type='text' id='uno' value='texto' onkeydown='onkeyFnc(event,13,'alert('algo')');'>
<input type='text' id='dos' value=''>
Código HTML:
function onkeyFnc(e, k, fnc){
k = k ? k : 13;
tecla = (document.all) ? e.KeyCode : e.which
if(tecla == k){
if(fnc){
eval(fnc);
}
}
}
lo que hace : al presionar enter (tecla 13) en el input envia la funcion alert que es ejecutada por onkeyFnc, no necesariamente debe ser un alert puede ser cualquier otra al igual que el numero de la tecla (13 enter, 107 signo +).
ahora lo que necesito realmente es pasar las funciones como parametro
veamos
Código HTML:
<input type='text' id='uno' value='texto'
onkeydown='onkeyFnc( event,array(13=>'alert(algo1)',107=>'alert(algo2')) );'
>
<input type='text' id='dos' value=''>
la funcion
Código HTML:
function onkeyFncArray(e, fncs){
tecla = (document.all) ? e.KeyCode : e.which
eval(fncs[tecla]);
}
lo que hace (y este es el problema), lo mismo que la anterios pero esta vez le enviamos las teclas y las funciones a evaluar en un arreglo es decir
si apreta enter (13) entonces alert(algo1)
si apreta + (107) entonces alert(algo2)
y asi, seria un poco mas amplia y podria apoyar con mas teclas y mas funciones...
entonces la pregunta es : como envio un arreglo como paremetro a la funcion
Código:
onkeydown='onkeyFnc( event, array(13=>'alert(algo1)',107=>'alert(algo2')) );'
PD: las comillas simples son para ejemplificar y dar a entender la problematica (no son correctas).