Retroceder   Foros del Web > Programación para sitios web > Javascript

Respuesta
 
Herramientas Desplegado
Antiguo 14-may-2008, 19:51   #1 (permalink)
ciisteado ha deshabilitado el karma
 
Avatar de ciisteado
 
Fecha de Ingreso: enero-2008
Ubicación: Inetpub\wwwroot...
Mensajes: 86
Enviar un mensaje por MSN a ciisteado Enviar un mensaje por Yahoo  a ciisteado
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...
ciisteado está desconectado   Responder Citando
Antiguo 14-may-2008, 19:55   #2 (permalink)
i_e_s27 tiene algunos puntos positivos de karma
 
Avatar de i_e_s27
 
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 195
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
i_e_s27 está desconectado   Responder Citando
Antiguo 15-may-2008, 09:46   #3 (permalink)
Colaborador
JuanRAPerez tiene algunos puntos positivos de karma
 
Avatar de JuanRAPerez
 
Fecha de Ingreso: octubre-2003
Mensajes: 1.888
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
JuanRAPerez está desconectado   Responder Citando
Antiguo 16-may-2008, 00:28   #4 (permalink)
rivahuevino ha deshabilitado el karma
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
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...
rivahuevino está desconectado   Responder Citando
Antiguo 19-may-2008, 18:48   #5 (permalink)
ciisteado ha deshabilitado el karma
 
Avatar de ciisteado
 
Fecha de Ingreso: enero-2008
Ubicación: Inetpub\wwwroot...
Mensajes: 86
Enviar un mensaje por MSN a ciisteado Enviar un mensaje por Yahoo  a ciisteado
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...
ciisteado está desconectado   Responder Citando
Antiguo 20-may-2008, 17:55   #6 (permalink)
JavierCS2007- ha deshabilitado el karma
 
Fecha de Ingreso: octubre-2007
Ubicación: Capital Federal
Mensajes: 142
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??
JavierCS2007- está desconectado   Responder Citando
Antiguo 21-may-2008, 07:21   #7 (permalink)
rivahuevino ha deshabilitado el karma
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
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...
rivahuevino está desconectado   Responder Citando
Antiguo 22-may-2008, 15:48   #8 (permalink)
JavierCS2007- ha deshabilitado el karma
 
Fecha de Ingreso: octubre-2007
Ubicación: Capital Federal
Mensajes: 142
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.
JavierCS2007- está desconectado   Responder Citando
Antiguo 23-may-2008, 09:13   #9 (permalink)
JavierCS2007- ha deshabilitado el karma
 
Fecha de Ingreso: octubre-2007
Ubicación: Capital Federal
Mensajes: 142
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?
JavierCS2007- está desconectado   Responder Citando
Antiguo 23-may-2008, 23:03   #10 (permalink)
rivahuevino ha deshabilitado el karma
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
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...
rivahuevino está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 00:50.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93