Foros del Web » Programando para Internet » Javascript »

no ocupar mouse para nada

Estas en el tema de no ocupar mouse para nada en el foro de Javascript en Foros del Web. Hola señores del foro...tengo una duda....tengo un menu colgante donde muestro datos de una base de datos (Ej: codigo_Nombre_etc), la idea es que cada ves ...
  #1 (permalink)  
Antiguo 05/01/2009, 05:15
Avatar de cajojeca  
Fecha de Ingreso: junio-2008
Mensajes: 77
Antigüedad: 15 años, 10 meses
Puntos: 0
no ocupar mouse para nada

Hola señores del foro...tengo una duda....tengo un menu colgante donde muestro datos de una base de datos (Ej: codigo_Nombre_etc), la idea es que cada ves que ingrese a esa pagina web que esta en php, no tenga que hacer clic al menu para buscar un elemento, sino que cada ves que ingrese coloque el codigo y lo seleccione, y luego cuando presione enter realise las acciones ya definidas, ya que el boton hay que presionarlo con el mouse, la idea es no ocupar el mouse para nada...si alguien me puede ayudar se lo agradeceria mucho, ya que me informaron que con javascript se puede realizar eso....., no se si se agrega algun codigo o algo....gracias.....
  #2 (permalink)  
Antiguo 05/01/2009, 09:27
 
Fecha de Ingreso: enero-2008
Mensajes: 53
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: no ocupar mouse para nada

No termino de entender bien cuál es la necesidad que tenés....

Tenés en tu página, un menú donde aparecen datos que son obtenidos de una DDBB, hasta ahí claro, pero después no termina de quedarme claro si...
1) cada uno de esos elementos son un link a otra página, y lo que vos querés es que apenas entre a esa página, precargue el código y lo tenga seleccionado, y pueda hacer solamente enter para ejecutar la acción pretendida

ó

2) querés que simplemente al pasar el mouse por el elemento, se precarguen los datos en la caja y te de la opción de ejecutarlo.

Me cierra mucho más la primera opción, pero si podés especificarme un poco más, tal vez te pueda ayudar

Saludos
  #3 (permalink)  
Antiguo 05/01/2009, 10:38
Avatar de cajojeca  
Fecha de Ingreso: junio-2008
Mensajes: 77
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: no ocupar mouse para nada

Lo que pasa es que en mi menu colgante tengo id (claves primarias), esas son solamente datos que se guardan en otra tabla.....la idea es selecionar cualquiera de esos datos solamente escribiendo en el teclado, ejemplo: todas las cosas q tiene el menu comienzan con numeros, entonces cuando presione 33 que se vaya a donde se encuentra el dato que comienza con 33, y luego de escribir 33, que presione enter y se dirija a la otra pagina para que guarde datos y realice la coneccion con la base de datos...etc. solamente necesito que cada ves que ingrese a la pagina escriba el numero y me seleccione el dato y luego presiono enter y aga lo demas.....la idea que sea todo mas rapido y no estar buscando los datos con el mouse ya que se hace muy lento estar seleccionando a cada instante opciones diferentes, ya que si uno presiona el numero aparesca solito.....ojala aya qedado mas claro....muchas gracias por responder....
  #4 (permalink)  
Antiguo 05/01/2009, 11:08
 
Fecha de Ingreso: enero-2008
Mensajes: 53
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: no ocupar mouse para nada

Ahora creo que sí te entiendo un poco mejor.

Lo que tendrías que hacer, es poner un campo donde pueda insertar el número a buscar, y que al darle enter, se envíe a la página con los datos.

Voy a tratar de guiarte un poco cómo sería masomenos el código (lo estoy haciendo un poco a ciegas ya que no sé cómo es el código que estás usando).

Tendrías que tener un input dentro de un form, por ejemplo:

Código HTML:
<form method="post" action="laPaginaDeLosProductos" id="formProductos">
  <input type="text" name="idProducto" id="idProducto" onkeypress="return checkearTecla(event);" />
</form> 
Lo que hago es definir un formulario que va a enviarse a la página que quieres que traiga el producto por su código. Luego, dentro de él defino un input, con su correspondiente id y en su evento onkeypress, que se ejecuta por cada tecla que se presiona dentro de él, verifico con una función javascript qué es lo que está ingresando.

Esa función podría ser algo como:

Código:
<script type="text/javascript">
function checkearTecla(e)
{
	// Si la tecla presionada es enter...
	if(e.keyCode == 13)
		validarId(document.getElementById('idProducto').value); // Verifico si el id insertado existe dentro de la lista pre-generada.
	
	buscarProducto(document.getElementById('idProducto').value); // Busca y le pre-selecciona el producto que comienza con el número que está escribiendo.
	
	// Sino, retorno true (también si quieres puedes validar que sólo pueda insertar números.
	return true;
}

function buscarProducto(id)
{
	// Acá ingresas el algoritmo para buscar y selecionar el producto que tiene ese id
	// No puedo darte ahora un código más completo porque no sé cómo generas la lista
	
	// Si utilizas que cada elemento tenga un id que sea sólo el número, podrías hacer algo como...
	if(document.getElementById(id)) // Verifico que el elemento exista
	{
		// Acá marcas como quieras el elemento encontrado.
	}
}

function validarId(id)
{
	// Acá ingresas el algoritmo para verificar si está el id
	// No puedo darte ahora un código más completo porque no sé cómo generas la lista
	// o si quiera si te interesa validar antes que el código exista, supongo que sí.
	
	// Si el código existe, retorno true para que envíe el formulario.
		return true;

	// Sino, retorno false
	return false;
}
</script>
Esos serían un ligero ejemplo del código javascript...
Si postearas cómo es el código HTML de la lista que generas, o tuvieras una url de donde se pueda ver la página ejecutándose, tal vez podría brindarte una mejor ayuda.


Cualquier cosa chiflas

Saludos
  #5 (permalink)  
Antiguo 05/01/2009, 11:49
Avatar de cajojeca  
Fecha de Ingreso: junio-2008
Mensajes: 77
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: no ocupar mouse para nada

Hola se entiende tu codigo....pero no es lo que realmente tengo..aqui te pegare mi codigo, bueno ese es el formulario, muy simple con un menu colgante y un boton, la idea que al ingresar a la pagina sin mover ni presionar el mouse, solamente escribiendo 33 o cualquiera otro pueda seleccionar, y luego al presionar enter que aga el trabajo del action normal graciasss .

<form action="php/ingreso.php" method="post" name="form4"><div align="center"><span class="Estilo36"> </span></div>
<table width="95%" border="1">
<tr>
<td colspan="2"><div align="center" class="Estilo29">
<div align="center">Ingreso de Vehiculos. </div>
</div></td>
</tr>
<tr>
<td width="40%"><div align="left"><span class="Estilo30">Codigo Item Vehiculo: </span></div></td>
<td width="60%" class="Estilo34"><div align="left"> <span class="Estilo36"><span class="Estilo30">
<select name="codigo_ingreso" class="Estilo36" id="codigo_ingreso">
<option value="33" selected>33 __ Auto Comprador</option>
<option value="1">1 ___ Camion Carga 12 Toneladas</option>
<option value="2">2 ___ Proveedor Tops 4</option>
<option value="5">5 ___ Vehiculo Mayor Verdura Zona</option>
<option value="7">7 ___ Vehiculo Mediano Verdura Zona</option>
<option value="8">8 ___ Carro Temporero</option>
<option value="9">9 ___ Vehiculo Menor Verdura Zona</option>
<option value="10">10 __ Camion Bebidas</option>
<option value="11">11 __ Mariscos Y Pescados Menores</option>
<option value="13">13 __ Mariscos Y Pescados Medianos</option>
<option value="15">15 __ Mariscos Y Pescados Mayores</option>
<option value="17">17 __ Proveedor Mayor</option>
<option value="21">21 __ Proveedor Menor</option>
<option value="22">22 __ Proveedor Bebidas Ramplas</option>
<option value="23">23 __ Proveedor Tops 3</option>
<option value="25">25 __ Fruta Zona Mayor</option>
<option value="27">27 __ Camion, Micro, Etc. Vacios</option>
<option value="29">29 __ Medianos Vacios</option>
<option value="37">37 __ Fruta Zona Cabina Doble</option>
<option value="38">38 __ Fruta Zona Cabina Simple</option>
<option value="39">39 __ Camion Carga D/Pte 18 Toneladas</option>
<option value="44">44 __ Vehiculos Vacios (LUNES)</option>
<option value="45">45 __ Carretillas</option>
<option value="46">46 __ Terminal Buses</option>
<option value="47">47 __ Proveedor Tops 1</option>
<option value="48">48 __ Proveedor Tops 2</option>
<option value="50">50 __ Camion Temporero Simple</option>
<option value="51">51 __ Rampla 18 Toneladas</option>
<option value="52">52 __ Proveedor Locatario Techado</option>
<option value="00">00 __ Vehiculo Liberado</option>
<option value="98">98 __ Locatario Liberado</option>
<option value="99">99 __ Locatario Con Codigo</option>
</select>
</span></span></div></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input name="Submit2" type="submit" value="Ingresar Vehiculo">
</div></td>
</tr>
</table>
<div align="center"></div>
</form>
  #6 (permalink)  
Antiguo 05/01/2009, 12:43
 
Fecha de Ingreso: enero-2008
Mensajes: 53
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: no ocupar mouse para nada

Ahhh, usabas un combobox, ok.

Entonces lo que puedes hacer, es que apenas cargue la página, pongas el foco en ese combobox, y ahí el navegador se encarga de que por cada número que busca, ubicarlo.

Por ejemplo:

Código:
<script>
function setFocus()
{
    document.getElementById("codigo_ingreso").focus();
}

setFocus();
</script>
Insertas este código luego del formulario, y automáticamente al cargar la página, el foco estará en ese elemento.

Y para lo del enter, lo que hacer es agregarle un id al form, y a tu select, una función javascript en su evento onkeypress:

Código HTML:
<form action="php/ingreso.php" method="post" name="form4" id="form4">

<select name="codigo_ingreso" class="Estilo36" id="codigo_ingreso" onkeypress="enviar(event);"> 
Y la función javascript...

Código:
<script>
function enviar(e)
{
        if(e.keyCode == 13) // Si la tecla presionada fue enter
                document.getElementById("form4").submit(); // Envío el formulario
}
</script>
Prueba con esto a ver si te sirve.

Cualquier cosa avisas.

Saludos
  #7 (permalink)  
Antiguo 05/01/2009, 12:55
 
Fecha de Ingreso: enero-2008
Mensajes: 53
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: no ocupar mouse para nada

Mmm.. acabo de probarlo un poco mejor, y el código sólo funciona como se espera en Firefox...
Principalmente porque en IE por ejemplo no busca automáticamente por el texto introducido dentro del select como esperaba.

Teniendo eso en cuenta, creo que no vas a poder hacerlo directamente sólo con el select, deberías tener que considerar utilizar un input y que inserten ahí el código... ya que el evento onkeypress dentro de un select, no captura el keyCode de la mayoría de las teclas, incluyendo letras y números...

Saludos
  #8 (permalink)  
Antiguo 06/01/2009, 05:20
Avatar de cajojeca  
Fecha de Ingreso: junio-2008
Mensajes: 77
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: no ocupar mouse para nada

Holas muchas gracias el codigo funciona de maravilla, tanto en mozilla como en ie7, eso era lo que necesitaba......no se como agradecertelo muchas gracias nuevamente......
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 22:25.