Ver Mensaje Individual
  #4 (permalink)  
Antiguo 16/05/2008, 00:28
rivahuevino
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
Antigüedad: 16 años
Puntos: 1
Respuesta: Llamar una función de JavaScript mediante un "ENTER"...

Usa esto a mi me funciona a la perfeccion lo puedes usar en Firefox e Internet Explorer:

Te recomiendo que lo hagas es un archivo JS externo a tu HTML, para que sea ordenado.

En primer lugar tienes que agregar el atributo ID al campo donde quieres que al presionar Enter llame a la funcion (por ejemplo 'criterio')

algo asi...<input type="text" name="buscar" id="criterio">
Código:
//Esta línea llama a la funcion InicializarEventos
addEvent(window,'load',inicializarEventos,false);


function inicializarEventos()
{
// Aquie obtienes mediante DOM el control a traves de ID 
  var ob1=document.getElementById('criterio');

// Se le agrega al objeto el evento (keypress), y la funcion que se va a ejecutar al presionar cualquie tecla...('presionar')
  addEvent(ob1,'keypress',presionar,false);
}


function presionar(e)
	{
	//Esta parrte es para IE
	if (window.event)
	  {
	           if (window.event.keyCode==13)
		{nom_funcion()}// Aqui escribe el nombre tu funcion que hace la busqueda...
	  }
	  else
                    //Esto es para Firefox y creo otros navegadores
		if (e)
		{
		  if(e.which==13)
		  	{nom_funcion()}//Igual que arriba
		}
	}
	

//Lo que hace la funcion addEvent es agregar la funcion para IE u otros navegadores, en IE es attachEvent y en los otros navegadores es addEventListener, fijense como se antepone el "on" para hacer referencia al evento para IE mientras que en los otros navegadores no es necesario...

function addEvent(elemento,nomevento,funcion,captura)
{
  if (elemento.attachEvent)
  {
    elemento.attachEvent('on'+nomevento,funcion);
    return true;
  }
  else  
    if (elemento.addEventListener)
    {
      elemento.addEventListener(nomevento,funcion,captura);
      return true;
    }
    else
      return false;
}
Con esto no es necesario agregar el onClick en el cuadro de busqueda, ya que la funcion se va a ejecutar solo en ella, por su ID...

Espero que te pueda ayudar esto...

Saludos...