Foros del Web » Programando para Internet » Javascript »

Ejecutar función al dar enter en formulario

Estas en el tema de Ejecutar función al dar enter en formulario en el foro de Javascript en Foros del Web. Hola Estoy usando un buscador sencillo que sólo resalta la cadena de busqueda en la misma página. Funicona perfecto pero sólo cuando se da click ...
  #1 (permalink)  
Antiguo 01/12/2008, 23:28
Avatar de Threepwood  
Fecha de Ingreso: febrero-2002
Ubicación: Argentina
Mensajes: 906
Antigüedad: 22 años, 2 meses
Puntos: 4
Ejecutar función al dar enter en formulario

Hola

Estoy usando un buscador sencillo que sólo resalta la cadena de busqueda en la misma página. Funicona perfecto pero sólo cuando se da click al boton Buscar. Lo que yo quisiera es que además se activara la función al dar enter. Este es el form:

Código HTML:
<form id="form1" name="form1" method="post" action="">
  <input name="cadena" type="text" id="cadena" />
  <input type="button" name="Button" id="Button" value="buscar" onclick="buscar(cadena.value)" /> 
¿Qué tendría que modificar para que al dar enter también buscara la cadena?

Gracias

Samuel.
__________________
Equívocos sin importancia
  #2 (permalink)  
Antiguo 02/12/2008, 00:46
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Respuesta: Ejecutar función al dar enter en formulario

Ponlo así:

<form id="form1" name="form1" method="post" action="javascript:buscar(this.cadena.value)">
<input name="cadena" type="text" id="cadena" />
<input type="submit" name="Button" id="Button" value="buscar"/>
</form>
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 02/12/2008, 11:14
Avatar de Threepwood  
Fecha de Ingreso: febrero-2002
Ubicación: Argentina
Mensajes: 906
Antigüedad: 22 años, 2 meses
Puntos: 4
Respuesta: Ejecutar función al dar enter en formulario

Hola Karlankas!

Gracias por tu respuesta :) pero no ha funcinado. A lo mejor tiene que ver con cómo está hecho el script, así qte voy a pegar el código JS:

Código:
String.prototype.preg_quote=function(){
    p= /([:.\+*?[^\]$(){}=!<>|:)])/g;
    return this.replace(p,"\\$1");
}
function buscar(cadena){
    resetear();
    if(!cadena.length)return;
    var info3;
    cadena=cadena.preg_quote();
    var patron=new RegExp(cadena+'(?!\}\})','gim');
    var espacio=/^\s$/;
    var el=document.getElementsByTagName('html')[0].getElementsByTagName('*');
    for(var i=0;i<el.length;i++){
        if(el[i].hasChildNodes && el[i].nodeName.toLowerCase()!='title' && el[i].nodeName.toLowerCase()!='script' && el[i].nodeName.toLowerCase()!='meta' && el[i].nodeName.toLowerCase()!='link' && el[i].nodeName.toLowerCase()!='style'){
            var tt=el[i].childNodes;
            for(var jj in tt){
                if(tt[jj].nodeType==3 && !espacio.test(tt[jj].nodeValue)){
                    patron.lastIndex = 0;
                    if(info3=patron.exec(tt[jj].nodeValue)){
                        tt[jj].nodeValue=tt[jj].nodeValue.replace(patron,'{{'+tt[jj].nodeValue.substr(info3['index'],cadena.length)+'}}');

                    }
                }

            }
        }
    }
    document.getElementsByTagName('body')[0].innerHTML=document.getElementsByTagName('body')[0].innerHTML.split('}}').join('</span>').split('{{').join('<span style="background-color: Navy; color: White">');
}
function resetear(){
    original=document.getElementsByTagName('body')[0].innerHTML=original;
}
window.onload=function(){
    original=document.getElementsByTagName('body')[0].innerHTML;
}

Muchas gracias por la ayuda.

Samuel.
__________________
Equívocos sin importancia
  #4 (permalink)  
Antiguo 02/12/2008, 11:32
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Ejecutar función al dar enter en formulario

¿No será que tienes algún error en el código? ¿Has revisado la consola de errores? ¿Podrías poner un enlace a tu página?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 02/12/2008, 14:40
Avatar de Threepwood  
Fecha de Ingreso: febrero-2002
Ubicación: Argentina
Mensajes: 906
Antigüedad: 22 años, 2 meses
Puntos: 4
Respuesta: Ejecutar función al dar enter en formulario

Hola, David!

Aquí hay un enlace a la página de prueba:

http://teatrohorizontal.com/buscador.html

A ver que puedes encontrar, muchas gracias.

Samuel
__________________
Equívocos sin importancia
  #6 (permalink)  
Antiguo 02/12/2008, 14:50
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ejecutar función al dar enter en formulario

En lugar de this.cadena.value coloca document.form1.cadena.value

Saludos .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 02/12/2008, 15:29
Avatar de Threepwood  
Fecha de Ingreso: febrero-2002
Ubicación: Argentina
Mensajes: 906
Antigüedad: 22 años, 2 meses
Puntos: 4
Respuesta: Ejecutar función al dar enter en formulario

Funcinó así, muchas gracias.
__________________
Equívocos sin importancia
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




La zona horaria es GMT -6. Ahora son las 15:24.