Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Javascript (http://www.forosdelweb.com/f13/)
-   -   Llamar una función de JavaScript mediante un "ENTER"... (http://www.forosdelweb.com/f13/llamar-funcion-javascript-mediante-enter-586628/)

ciisteado 14/05/2008 19:51

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...:borracho:

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é...??:neurotico

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

Saludos a todos...:arriba:

i_e_s27 14/05/2008 19:55

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

:adios:

JuanRAPerez 15/05/2008 09:46

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

rivahuevino 16/05/2008 00:28

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...

ciisteado 19/05/2008 18:48

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... :arriba:

Y Saludos a todos los que se tomaron el tiempo para aportar ideas... :adios:

JavierCS2007- 20/05/2008 17:55

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??

rivahuevino 21/05/2008 07:21

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...

JavierCS2007- 22/05/2008 15:48

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- 23/05/2008 09:13

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?

rivahuevino 23/05/2008 23:03

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...


La zona horaria es GMT -6. Ahora son las 10:30.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.