Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Tecla enter buscador javascript

Estas en el tema de Tecla enter buscador javascript en el foro de Javascript en Foros del Web. Hola, tengo un buscador en javascript que realiza una busqueda en otro documento javascript con las palabras y el link que yo defino., el tema ...
  #1 (permalink)  
Antiguo 25/09/2013, 05:40
Avatar de gerbmx  
Fecha de Ingreso: enero-2013
Ubicación: buenos aires
Mensajes: 41
Antigüedad: 11 años, 3 meses
Puntos: 0
Tecla enter buscador javascript

Hola, tengo un buscador en javascript que realiza una busqueda en otro documento javascript con las palabras y el link que yo defino., el tema q funciona perfecto cuando le das a buscar pero si apretas enter no hace nada. necesito saber como hacer para que fucnione con la tecla enter.

Esta es la funcion:

Código:
function CreaBuscador() {

	//inicia variables globales
	CreaCabecera( '<p>Buscar numero de referencia o zona y pinche en <b>Buscar</b>.</p>' )

	Pagina += '<form name="FormularioBusqueda">\n' +
		'<p><small>Numero de REF:</small><br>\n' +
		'<input type="text" name="palabra" size="25">\n' +
		'<input type="hidden" name="pagina" value="0">\n' +
		'<input type="button" value="Buscar" name="buscar" onClick="IniciaBuscador(this.form.palabra.value, this.form.pagina.value, 0)">\n' +
		'<input type="reset" value="Borrar" name="borrar"></p></form>\n'
		
		
	CreaPie()		
}

el evento:

Código:
function IniciaBuscador(palabraClave, paginacion, nuevaBusqueda) {
	
	
	
	//inicia variables globales
	var desde = 0
	var partes
	var CadenasEntrada
	var descripcion = ''
	totales = nuevaBusqueda		//a 0 si nueva busqueda
	
	

	//detiene busqueda si palabra clave vacia
	if ( palabraClave == "" ) {
		
		alert("¡Introduzca cadena de búsqueda!")
		return
	}
	
	if ( nuevaBusqueda == 0) {
	
		//elimina acentos
		var palabra_sin = elimina_especiales(palabraClave)
	
		//obtiene la expresion regular para la busqueda (global e ignorando case)
		clave2 = new RegExp(palabra_sin, "gi")

		//borra array res
		for ( var r=0; r < res.length; r++) {
			res[r]=''
		}

		//busca entrada de pagina que contenga la clave
		//recorre el array en busca de la palabra clave (en cualquier parte)
		for (var x = 0; x < longitud; x++) {
			if ( BaseDatos[x].search(clave2) != -1 ) {
				CalculaRelevancia( x )
				totales++
			}
		}
	
		//ordena resultados segun relevancia
		res.sort( ordenacionNumerica )
	}

.... y sigue

Intente solucionarlo de mil formas y no hay caso. si necesitan mas parte del codigo lo coloco.
Gracias por su ayuda!!
  #2 (permalink)  
Antiguo 25/09/2013, 06:53
Avatar de dAvidcA  
Fecha de Ingreso: septiembre-2009
Ubicación: /home/dev/
Mensajes: 73
Antigüedad: 14 años, 7 meses
Puntos: 7
Respuesta: Tecla enter buscador javascript

Hola gerbmx,

Algo sencillo y rápido es añadir el evento onKeyPress al input text detectando la tecla enter (tecla 13) con event.keyCode o event.which como se ve en la línea 8 del siguiente código:
Código Javascript:
Ver original
  1. function CreaBuscador() {
  2.  
  3.     //inicia variables globales
  4.     CreaCabecera( '<p>Buscar numero de referencia o zona y pinche en <b>Buscar</b>.</p>' )
  5.  
  6.     Pagina += '<form name="FormularioBusqueda">\n' +
  7.         '<p><small>Numero de REF:</small><br>\n' +
  8.         '<input type="text" name="palabra" size="25" onkeypress="if(((document.all) ? event.keyCode : event.which)==13) IniciaBuscador(this.form.palabra.value, this.form.pagina.value, 0);">\n' +
  9.         '<input type="hidden" name="pagina" value="0">\n' +
  10.         '<input type="button" value="Buscar" name="buscar" onClick="IniciaBuscador(this.form.palabra.value, this.form.pagina.value, 0)">\n' +
  11.         '<input type="reset" value="Borrar" name="borrar"></p></form>\n'
  12.        
  13.        
  14.     CreaPie()      
  15. }

Saludos.
  #3 (permalink)  
Antiguo 25/09/2013, 09:02
Avatar de gerbmx  
Fecha de Ingreso: enero-2013
Ubicación: buenos aires
Mensajes: 41
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Tecla enter buscador javascript

Gracias david por tu respuesta. lo acabo de probar y lo que hace es mostrarme el resultado e inmediatamente se actualiza.

en la url cuando hago una búsqueda con el boton, la realiza y muestra el resultado y permanece en el mismo html:

...buscar.html

Cuando apreto enter y busco ej el numero 451, se actualiza y aparece esto:

buscar.html?palabra=451&pagina=0

Te paso una parte del codigo donde tira un if para la tecla enter a ver si esta ahi el problema:

Cita:

//MUESTRA FORMULARIO DE BUSQUEDA
function MuestraBuscador() {
if ( cdfcr( a, h ) == g ) { accion = 'verform'; CreaBuscador(); MuestraPagina( Pagina ); }
}
$('#search').bind('keyup', function (e) {
var key = e.keyCode || e.which;
if (key === 13) {
alert("Enter");
};
});

function CreaBuscador() {

//inicia variables globales
CreaCabecera( '<p>Buscar numero de referencia o zona y pinche en <b>Buscar</b>.</p>' )

Pagina += '<form name="FormularioBusqueda">\n' +
'<p><small>Numero de REF:</small><br>\n' +
'<input type="text" name="palabra" size="25" onkeypress="if(((document.all) ? event.keyCode : event.which)==13) IniciaBuscador(this.form.palabra.value, this.form.pagina.value, 0);">\n' +
'<input type="hidden" name="pagina" value="0">\n' +
'<input type="button" value="Buscar" name="buscar" onClick="IniciaBuscador(this.form.palabra.value, this.form.pagina.value, 0)">\n' +
'<input type="reset" value="Borrar" name="borrar"></p></form>\n'


CreaPie()
}
  #4 (permalink)  
Antiguo 25/09/2013, 09:33
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Tecla enter buscador javascript

Por que lo envías! No es necesario que lo hagas si no estás procesando datos...Pasalo solo por la función js e intercambia los botones de submit por button.
Saludoz
  #5 (permalink)  
Antiguo 25/09/2013, 15:56
Avatar de dAvidcA  
Fecha de Ingreso: septiembre-2009
Ubicación: /home/dev/
Mensajes: 73
Antigüedad: 14 años, 7 meses
Puntos: 7
Respuesta: Tecla enter buscador javascript

Hola gerbmx, claro está enviando el form haciendo el evento 'submit', simplemente es cancelar el envío con return false; en el onclick.

Este es el código corregido:

Código Javascript:
Ver original
  1. function CreaBuscador() {
  2.  
  3.     //inicia variables globales
  4.     CreaCabecera( '<p>Buscar numero de referencia o zona y pinche en <b>Buscar</b>.</p>' )
  5.  
  6.     Pagina += '<form name="FormularioBusqueda">\n' +
  7.         '<p><small>Numero de REF:</small><br>\n' +
  8.         '<input type="text" name="palabra" size="25" onkeypress="if(((document.all) ? event.keyCode : event.which)==13) IniciaBuscador(this.form.palabra.value, this.form.pagina.value, 0); return false;">\n' +
  9.         '<input type="hidden" name="pagina" value="0">\n' +
  10.         '<input type="button" value="Buscar" name="buscar" onClick="IniciaBuscador(this.form.palabra.value, this.form.pagina.value, 0)">\n' +
  11.         '<input type="reset" value="Borrar" name="borrar"></p></form>\n'
  12.        
  13.        
  14.     CreaPie()      
  15. }

Saludos.
  #6 (permalink)  
Antiguo 26/09/2013, 04:15
Avatar de gerbmx  
Fecha de Ingreso: enero-2013
Ubicación: buenos aires
Mensajes: 41
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Tecla enter buscador javascript

Hola muchachos! gracias por sus repuestas. acabo de probar el código, hay un problema. no me permite teclear ningún carácter en el buscador desde el teclado, si pongo algo que ya esta grabado, algún numero que se despliega en el campo y le doy enter funciona perfecto con el return false perfecto.
Pero no puedo teclear ningún carácter desde el teclado, como que algo lo inhabilita.
Esto me tiene de la nucaaa!! ahora si que no tengo idea que puede ser, algun condicional quizas?... Soy bastante nuevo en esto pero intento darme maña.
muchas graciasss!
  #7 (permalink)  
Antiguo 26/09/2013, 06:13
Avatar de dAvidcA  
Fecha de Ingreso: septiembre-2009
Ubicación: /home/dev/
Mensajes: 73
Antigüedad: 14 años, 7 meses
Puntos: 7
Respuesta: Tecla enter buscador javascript

Hola, claro hay que encerrar el llamado al método y el return false; en llaves { } para que sea tomado solo por el carácter enter, quedando así:

Código:
{ IniciaBuscador(this.form.palabra.value, this.form.pagina.value, 0); return false; } 
Saludos.
  #8 (permalink)  
Antiguo 26/09/2013, 06:50
Avatar de gerbmx  
Fecha de Ingreso: enero-2013
Ubicación: buenos aires
Mensajes: 41
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Tecla enter buscador javascript

Sos un crack. funciona de maravilla!!
Te agradezco mucho ya que hace tiempo estaba con este problema.
De paso me aprovecho y te hago una consulta. me gustaría que cuando tira los resultados (que los busca en un archivo dbs.js en el cual yo tengo las palabras claves y el link que debe mostrar) también capture una imagen y la muestre, actualmente muestra unas imágenes de relevancia de búsqueda, la cual modifique porq no me gustaba eso, este es el código:

Código:
function MuestraRelevancia(relevancia) {

	var cadena_relevancia = ''
	
	for (var x = 0; x < relevancia; x++) cadena_relevancia += '<img src="' + imagen_relevancia + '_on.gif" width="15" height="16" border="0">'
 	for (var y = 0; y < 4 - relevancia; y++) cadena_relevancia += '<img src="' + imagen_relevancia + '_off.gif" width="15" height="16" border="0">'
 	
 	return cadena_relevancia 
}
Puedo agregar algo en el dbs.js (donde busca) y algo en el mismo codigo js para que también me muestre la imagen aparte de las palabras clave y el link?

Gracias por tu ayuda.
Un saludo

Etiquetas: buscador, enter, formulario, funcion, input, tecla, variable
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 00:04.