Primero que todo aclarar que lo que estoy tratando de hacer no es recursividad.
quiero que al pulsar enter en un textbox pueda llamar a determinada funcion:
llevo en el index.php:<input name="texto" type="text" id="texto" size="40" onkeypress="keydown(event,'funcion')">
en el archivo funciones_javascript.js://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:if (funcion=='buscar')
buscar();
elseif (funcion=='ejecutar')
ejecute();
etc...
Probe a llamarla usando: 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:<input name="texto" type="text" id="texto" size="40" onkeypress="keydown(event,'buscardatos('buscar','1')')"></td>
Como deberia enviar la segunda funcion dentro de la primera ????
lo solucione enviando los parametros de la segunda funcion cifrados por asi decirlo asi:<input name="texto" type="text" id="texto" size="40" onkeypress="keydown(event,'estaesotrafuncionˇ%buscar%,%1%!')">
donde reemplazamos:
( por ˇ
) por !
y las '' por %%
Y despues en el evento que me detecta el enter://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!!!! ;-) ;-) ;-) ;-)