| |||
Como seleccionar un elemento de una lista desplegable con teclado? Buenas, estoy integrnado un sistema de autocomplete en un buscador, pero me encuentro con el siguiente problema, una vez que se me muestran en la lista deplegables los elementos solo me deja seleccionarlos con el raton, y no me deja navegar a traves de ellos con el teclado (arriba y abajo), ademas, me gustaría tambien saber como puedo hacer que se deje de mostrrar la lista cuando clickeo en cualquier lado que no sea la lista. Un saludo y gracias. |
| |||
Respuesta: Como seleccionar un elemento de una lista desplegable con teclado? Cita: Si que se muestra en un div... entonces si se encuentra en un div no hay manera de moverse por ellas? hay alguna solucion que me permita moverme con la teclas de direccion?Y donde debo de usar el evento onblur? |
| ||||
Respuesta: Como seleccionar un elemento de una lista desplegable con teclado? Hola Tendrías que usar un select. Onblur lo puedes usar, por ejemplo, en el body <body onblur="funcion()"> Suerte
__________________ Los formularios se envían/validan con un botón Submit <input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" /> |
| |||
Respuesta: Como seleccionar un elemento de una lista desplegable con teclado? lo acabo de poner, pero el problema es que ahora, cuando voy a seleccionar con el raton uno de los elementos del div, no me lo copia a la caja de texto...porque se activa el onblur al clicker fuera del input del texto... no se si me explico.. gracias de todas formas |
| ||||
Respuesta: Como seleccionar un elemento de una lista desplegable con teclado? Hola Muestra la función que estás usando Suerte
__________________ Los formularios se envían/validan con un botón Submit <input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" /> |
| |||
Respuesta: Como seleccionar un elemento de una lista desplegable con teclado? Estas son las funciones que he usado: Este es el formularo donde se muestra el input donde escribe el usuario y se debe de mostrar el autocomplete en el div. Código HTML: <form name="formasigpriv" method="post"> <table width="85%" align="center"> <tr height="60"> <td class="impacto"><?php echo htmlentities(USUARIO) ?>:</td> <td><input type="text" id="usuario" name="usuario" size="50" onblur="ocultarautocomplete()" onKeyUp="autocompletar()"><div id="autocomplete"></div></td> </tr> <tr height="60"> <td class="impacto"><?php echo htmlentities(TIPOPRIV) ?>:</td> <td> <select name="tipopriv" id="tipopriv"> <?php ......relleno el select... ?> </select> </td> </tr> <tr><td> </td></tr> <tr> <td colspan="2" align="center"><input type="button" class="btn" onmouseover="this.className='btn btnhov'" onmouseout="this.className='btn'" value="<?php echo htmlentities(ASIGPRIV) ?>" onClick="asignarPrivilegios()"></td> </tr> </table> </form> Código PHP:
Código:
Siento la parrafada, seguro que hay formas mas elegantes de hacerlo, pero...function ocultarautocomplete(){ var comp = document.getElementById('autocomplete'); comp.style.visibility = "hidden"; } function autocompletar() { var comp = document.getElementById('autocomplete'); var textbox = document.getElementById('usuario'); if (document.getElementById('buscarporape').checked == true) var crit = "usuario"; else var crit = "apellidos"; if (textbox.value == ""){ comp.style.visibility = "hidden"; } else { colocarAutocomplete(); var ajax = nuevoAjax(); ajax.open("POST","auxi/autocomplete.php",true); ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajax.onreadystatechange = function() { if (ajax.readyState == 4){ if (ajax.responseText == "") comp.style.visibility = "hidden"; else{ comp.innerHTML = ajax.responseText; comp.style.visibility = "visible"; } } } ajax.send("texto=" + textbox.value + "&crit=" + crit); } } function colocarAutocomplete(){ var comp = document.getElementById('autocomplete'); var textbox = document.getElementById('usuario'); var oNode = textbox; var iLeft = 0; var iTop = 0; while(oNode.tagName != "BODY") { iLeft += oNode.offsetLeft; iTop += oNode.offsetTop; oNode = oNode.offsetParent; } comp.style.left = iLeft; comp.style.top = iTop + textbox.offsetHeight; comp.style.width = textbox.offsetWidth; } function completarNombre(nombre){ var comp = document.getElementById('autocomplete'); var textbox = document.getElementById('usuario'); textbox.value = nombre; comp.style.visibility = "hidden"; } Muchas gracias, te agradezco la ayuda!! |
| ||||
Respuesta: Como seleccionar un elemento de una lista desplegable con teclado? Hola Quita el evento onblur y en la función completarNombre
Código javascript:
Ver original Por otro lado, aquí cambia a esto
Código html:
Suerte Ver original
__________________ Los formularios se envían/validan con un botón Submit <input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" /> |
| |||
Respuesta: Como seleccionar un elemento de una lista desplegable con teclado? Buenas, Adler gracias por t u ayuda, pero te comento... [IMG]img194.imageshack.us/img194/2608/dibujodiw.png[/IMG] A escribir ves como me sale en el div los nombres que coincidem, pues lo que quiero es que por ejemplo sin no hago click con el raton en alguno de ellos, es decir fuera del div que se me oculte la lista desplegable, y con lo que me has comentado no se oculta. La verdad no se si se puede hacer, creo que si, pero te dejo la imagen por si se te puede ocurrir algo. Ahora mismo tal y como esta, solo te deja o elegir alguno de los que salen, copiandose perfectamte al input, o esperara a que al escribir no de ninguna coincidencia...no se si me explico... Gracias de nuevo |
| ||||
Respuesta: Como seleccionar un elemento de una lista desplegable con teclado? Hola Lo que pretendes hacer no se puede. El foco está en el campo usuario. En cuanto lo pierda, el div desaparecería, de forma que cuando se intentara seleccionar una de las opciones, no se escribiría en el text. Suerte
__________________ Los formularios se envían/validan con un botón Submit <input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" /> |
| |||
Respuesta: Como seleccionar un elemento de una lista desplegable con teclado? Gracias adler, no podría hacerse de otra manera aunque tuviera que cambiar algo? me dijistes que usando un select en vez de un div, podríamos movernos con la teclas de direccion, no se....es que creo que intente algo asi y no se me mostraba donde deseaba...ya me contaras si hay alguna solucion.. |
| ||||
Respuesta: Como seleccionar un elemento de una lista desplegable con teclado? Hola Pensandolo mejor, dejame investigar un poco el caso que nos ocupaba anteriormente
__________________ Los formularios se envían/validan con un botón Submit <input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" /> |
| ||||
Respuesta: Como seleccionar un elemento de una lista desplegable con teclado? Hola Veamos .... Tendrás que pasar javascript, así que necesitarás mandar llamar, de forma externa, a este guión con la extensión .js
Código javascript:
Ver original por otro lado, en principio no te va a funcionar por que está interviniendo un checkbox o radio. Modifica lo que sea necesario hasta adaptarlo a lo que te ocupa
Código javascript:
Ver original en la petición has de incluir algo como
Código javascript:
Ver original alguna duda, ya sabes .... Suerte
__________________ Los formularios se envían/validan con un botón Submit <input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" /> |
| |||
Respuesta: Como seleccionar un elemento de una lista desplegable con teclado? Me acabas de acojonar Voy a probar a ver, lo del check radio, ya lo he quitado, asi que voy a ver como puedo poner esto, porque de un primer vistazo no se como meterle mano... Muchisimas gracias por tu ayuda!! |
| ||||
Respuesta: Como seleccionar un elemento de una lista desplegable con teclado? Tranquilo es mas fácil de lo que puede parecer
__________________ Los formularios se envían/validan con un botón Submit <input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" /> |