quiero que al pulsar enter en un textbox pueda llamar a determinada funcion:
llevo en el index.php:
Código
<input name="texto" type="text" id="texto" size="40" onkeypress="keydown(event,'funcion')">
en el archivo funciones_javascript.js:
Código
//CAPTURAR ENTER Y REDIRIGIRLO HACIA OTRA ACCION function keydown(e,s){ if (!e) var e = window.event; if (e.keyCode) code = e.keyCode; else if (e.which) code = e.which; if (code==13){ //alert ("presiono enter"); //document.getElementById(s).focus(); esta_es_otra_funcion('buscar','1') } }
la funcion javascript recibe por la variable 'funcion' el nombre de la otra funcion que deberia ejecutar al presionar enter, como invoco o llamo a esa funcion que recibi desde la funcion actual????
que no tenga que hacer:
Código
if (funcion=='buscar') buscar(); elseif (funcion=='ejecutar') ejecute(); etc...
Probe a llamarla usando:
Código
function keydown(e,s){ if (!e) var e = window.event; if (e.keyCode) code = e.keyCode; else if (e.which) code = e.which; if (code==13){ //alert ("presiono enter"); //document.getElementById(s).focus(); //medicamentos('buscar','1') var f = new Function(s+";"); f(); } }
pero no funciono.
El primer obstaculo a sortear es como enviar la funcion desde el evento del campo sin deformar la estructura de la peticion de la primera funcion asi:
Código
Como deberia enviar la segunda funcion dentro de la primera ????
lo solucione enviando los parametros de la segunda funcion cifrados por asi decirlo asi:
Código
donde reemplazamos:
<input name="texto" type="text" id="texto" size="40" onkeypress="keydown(event,'estaesotrafuncion¡%buscar%,%1%!')">
( por ¡
) por !
y las '' por %%
Y despues en el evento que me detecta el enter:
Código
//CAPTURAR ENTER Y REDIRIGIRLO HACIA OTRA FUNCION function keydown(e,s){ if (!e) var e = window.event; if (e.keyCode) code = e.keyCode; else if (e.which) code = e.which; if (code==13){ //Cadena original var texto = s; //Reemplazamos todas las cadenas texto = texto.replace(/¡/g, '('); texto = texto.replace(/!/g, ')'); texto = texto.replace(/%/g, "'"); //llamamos a la funcion recibida var f = new Function(texto+";"); f(); } }
Y asi logramos usar una funcion para llamar a otras funciones!!!!