Foros del Web » Programando para Internet » Javascript »

Llamar una función de JavaScript mediante un "ENTER"...

Estas en el tema de Llamar una función de JavaScript mediante un "ENTER"... en el foro de Javascript en Foros del Web. Hola a todos: En primer lugar no sé si este sea el foro adecuado pero bueno, voy a suponer que si... El problema es bastante ...
  #1 (permalink)  
Antiguo 14/05/2008, 19:51
Avatar de ciisteado  
Fecha de Ingreso: enero-2008
Ubicación: Home Office
Mensajes: 111
Antigüedad: 16 años, 3 meses
Puntos: 0
Pregunta Llamar una función de JavaScript mediante un "ENTER"...

Hola a todos:

En primer lugar no sé si este sea el foro adecuado pero bueno, voy a suponer que si...

El problema es bastante claro, yo tengo un formulario en donde hago una búsqueda "X", para ello esta este codigo:

Código HTML:
<script language="javascript">
	function unafuncion()
	{
		//Aqui valido que escriba un termino y seleccione 
un criteriode busqueda
	}
</script>
<form name="buscaprod" method="post" action="esta_misma_pagina">
<table>
	<tr>
		<td>
			<input type="text" name="buscar"/>&nbsp;<input type="button" value="[  Buscar  ]" onClick="unafuncion()"/>
		</td>
	</tr>
	<tr>
		<td class="interfaz" align="center">Criterio:
			<select name="criterio">
				<option selected value="0">- Seleccionar -</option>
				<option value="1">Criterio 1</option>
				<option value="2">Criterio 2</option>
				<option value="3">Criterio 3</option>
				<option value="4">Criterio 4</option>
			</select>
		</td>
	</tr>
</table>
</form> 
Esto funciona bien, es decir...
1.- Escribo un termino para buscar
2.- Selecciono un Criterio en el SELECT
3.- Le doy click al boton y me realiza dicha busqueda.

Ahora, el problema que tengo es que si...
1.- Escribo un termino para buscar
2.- Selecciono un Criterio en el SELECT
3.- Doy ENTER en lugar de presionar el boton buscar...no llama a la función y por logica no HACE la VALIDACIóN lo que ocaciona que truene la aplicación a la hora de hacer la búsqueda... en la medida de lo posible yo quisiera que mediante el "ENTER" llamará a la función y de esta forma validará los datos como lo hace a la hora de presionar el boton buscar...

¿¿No sé si me expliqué...??

Agradezco enormemente cualquier idea posteada... espero su ayuda...

Saludos a todos...
  #2 (permalink)  
Antiguo 14/05/2008, 19:55
Avatar de i_e_s27  
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 208
Antigüedad: 16 años, 1 mes
Puntos: 5
Re: Llamar una función de JavaScript mediante un "ENTER"...

Si tu piensas que el problema esta en SELECTS (codigo ASP) pues... pon el correspondiente codigo... ahi solo mostraste JavaScript y HTML... asi te van a pasar al foro de JavaScript

__________________
Demasiado mayor para ser una joven promesa, demasiado joven para ser una vieja gloria
  #3 (permalink)  
Antiguo 15/05/2008, 09:46
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 6 meses
Puntos: 27
Re: Llamar una función de JavaScript mediante un "ENTER"...

umm no no es asp

OnSubmit sera?


Cita:
<form name="buscaprod" method="post" action="esta_misma_pagina"
onSubmit="return unafuncion(this);">
suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #4 (permalink)  
Antiguo 16/05/2008, 00:28
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
Antigüedad: 15 años, 11 meses
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...
  #5 (permalink)  
Antiguo 19/05/2008, 18:48
Avatar de ciisteado  
Fecha de Ingreso: enero-2008
Ubicación: Home Office
Mensajes: 111
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Llamar una función de JavaScript mediante un "ENTER"...

Hey rivahuevino:

Cita:
Espero que te pueda ayudar esto...
Vaya que si sirvio, me sacaste de un buen apuro... gracias por tan buena aportación...

Y Saludos a todos los que se tomaron el tiempo para aportar ideas...
  #6 (permalink)  
Antiguo 20/05/2008, 17:55
 
Fecha de Ingreso: octubre-2007
Ubicación: Capital Federal
Mensajes: 215
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: Llamar una función de JavaScript mediante un "ENTER"...



dónde tendría q colocar el :
Código:
addEvent(window,'load',inicializarEventos,false);
que llama a la función??
  #7 (permalink)  
Antiguo 21/05/2008, 07:21
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Llamar una función de JavaScript mediante un "ENTER"...

JavierCS2007-

Cita:
Te recomiendo que lo hagas es un archivo JS externo a tu HTML, para
que sea ordenado.
Como digo lineas arriba es recomendable que todo el codigo lo coloques en un archivo js (por ejemplo "funciones.js", "rutinas.js", nose lo que quieras)

Luego en tu html lo llamas dentro del <head> de de la siguiente manera :

Código HTML:
<script language="javascript" src="funciones.js" type="text/javascript"> 
como ven en src colocas el archivo js que has creado...

Saludos...
  #8 (permalink)  
Antiguo 22/05/2008, 15:48
 
Fecha de Ingreso: octubre-2007
Ubicación: Capital Federal
Mensajes: 215
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: Llamar una función de JavaScript mediante un "ENTER"...

Gracias por la respuesta

No me funciona... seguro estoy haciendo mal alguna llamada, como no sé mucho de java es muy probable.

Tengo ésto:

pagina.php

Código:
<head>
<script languaje="javascript"> 

	function confirmar()
	{
	if (confirm("El registro será eliminado. ¿Está seguro?"))
	{ return true; }
	else { return false; } 

	} 
</script>

<script language="javascript" src="func.js" type="text/javascript"> 
</script>
</head>

<body>

<Form method="Post" Action="pagina.php">
<Input Type="text" Name="del" id="criterio">
<Input Type="submit" Value="Eliminar" onClick="return confirmar()">
</form>
func.js

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)
		{confirmar()}// 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)
		  	{confirmar()}//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;
}
Cuando clickeo el botón submit me pregunta si quiero eliminar, pero si presiono Enter, lo borra directamente.

Que hice mal ??

Espero puedan ayudarme.

Javi.
  #9 (permalink)  
Antiguo 23/05/2008, 09:13
 
Fecha de Ingreso: octubre-2007
Ubicación: Capital Federal
Mensajes: 215
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: Llamar una función de JavaScript mediante un "ENTER"...

Foreros... perdón por la insistencia, pero no puedo hacer andar ese script.

Alguien tiene idea xque no me anda?
  #10 (permalink)  
Antiguo 23/05/2008, 23:03
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Llamar una función de JavaScript mediante un "ENTER"...

Dos cosas:

Primero: Si mas no me equivoco, cuando estas en un formulario al presionar Enter se activa el boton Submit.

Segundo: Ojo que esas funciones que aporte solo va a funcionar cuando presiones ENTER en tu campo que tiene el ID criterio, en tu caso.

Creo que puedes hacer lo siguiente:

En lugar de usar boton tipo "Submit".
Código HTML:
<Input Type="submit" Value="Eliminar" onClick="return confirmar()"> 
Usa un boton simple
Código HTML:
<Input Type="button" Value="Eliminar" onClick="return confirmar()"> 
En ese caso como es un boton comun y corriente no hace caso al Enter.

Saludos...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:18.