¿Cómo se configura automáticamente el foco en un cuadro de texto cuando se carga una página web?
¿Hay una etiqueta HTML para hacerlo o tiene que hacerse a través de Javascript?
javascript
html
Mark Biek
fuente
fuente
Respuestas:
Si estás usando jquery:
o prototipo:
o JavaScript simple:
aunque tenga en cuenta que esto reemplazará a otros controladores de carga, así que busque addLoadEvent () en google para encontrar una forma segura de agregar controladores de carga en lugar de reemplazarlos.
fuente
En HTML hay un
autofocus
atributo para todos los campos de formulario. Hay un buen tutorial sobre esto en Dive Into HTML 5 . Desafortunadamente, actualmente no es compatible con las versiones de IE menores de 10.Para usar el atributo HTML 5 y recurrir a una opción JS:
No se requieren controladores jQuery, onload o de eventos, porque el JS está debajo del elemento HTML.
Editar: otra ventaja es que funciona con JavaScript desactivado en algunos navegadores y puede eliminar el JavaScript cuando no desea admitir navegadores más antiguos.
Edición 2: Firefox 4 ahora es compatible con el
autofocus
atributo, dejando a IE sin soporte.fuente
autofocus="aufofocus"
? Todos los enlaces que ya ha proporcionado sólo dicen que añadir el atributo:autofocus
.attribute="value"
para los atributos booleanos. HTML5 vino junto con la "sintaxis de atributo vacío" y eliminamos la redundancia. Ahora podemos hacerlo<input checked disabled autofocus data-something>
Necesitas usar javascript:
@Ben señala que no debe agregar controladores de eventos como este. Si bien esa es otra pregunta, recomienda que use esta función:
Y luego llame a addLoadEvent en su página y haga referencia a una función que establezca el foco en el cuadro de texto deseado.
fuente
Simplemente escriba autofocus en el campo de texto. Esto es simple y funciona así:
Espero que esto ayude.
fuente
Puede hacerlo fácilmente usando jquery de esta manera:
llamando a esta función en
$(document).ready()
.Significa que esta función se ejecutará cuando el DOM esté listo.
Para obtener más información sobre la función READY, consulte: http://api.jquery.com/ready/
fuente
Usando html y javascript simple
Para aquellos que usan el framework .net y asp.net 2.0 o superior, es trivial. Si está utilizando versiones anteriores del marco, necesitará escribir algunos javascript similares a los anteriores.
En su controlador OnLoad (generalmente page_load si está utilizando la plantilla de página de stock suministrada con Visual Studio) puede usar:
C#
VB.NET
(* Nota: ¡eliminé el carácter de subrayado del nombre de la función que generalmente es Page_Load ya que en un bloque de código se negó a procesar correctamente! No pude ver en la documentación de marcado cómo obtener guiones bajos para renderizar sin escape).
Espero que esto ayude.
fuente
En mi humilde opinión, la forma 'más limpia' de seleccionar el primer campo de texto visible y habilitado en la página, es usar jQuery y hacer algo como esto:
Espero que ayude...
Gracias...
fuente
fuente
Como consejo general, recomendaría no robar el foco de la barra de direcciones. ( Jeff ya habló de eso ) .
La carga de la página web puede demorar un tiempo, lo que significa que su cambio de enfoque puede ocurrir mucho tiempo después de que el usuario escribió la URL pae. Entonces podría haber cambiado de opinión y volver a escribir URL mientras carga su página y roba el foco para ponerla en su cuadro de texto.
Esa es la única razón que me hizo eliminar Google como mi página de inicio.
Por supuesto, si controlas la red (red local) o si el cambio de enfoque es resolver un importante problema de usabilidad, olvida todo lo que acabo de decir :)
fuente
Tuve un problema un poco diferente. Quería
autofocus
, pero quería que elplaceholder
texto permaneciera, entre navegadores. Algunos navegadores ocultarían elplaceholder
texto tan pronto como el campo se enfocara, algunos lo mantendrían. Tuve que hacer que los marcadores de posición permanecieran en el navegador cruzado, que tiene efectos secundarios extraños, o dejar de usarautofocus
.Así que escuché la primera tecla escrita contra la etiqueta del cuerpo y la redirigí al campo de entrada de destino. Luego, todos los controladores de eventos involucrados son asesinados para mantener las cosas limpias.
https://jsfiddle.net/b9chris/qLrrb93w/
fuente
Es posible establecer
autofocus
elementos de entradafuente
Si está usando ASP.NET, puede usar
en el código del servidor, que agregará el JavaScript apropiado a la página.
Otros marcos del lado del servidor pueden tener un método equivalente.
fuente
Usa el siguiente código. Para mi esta funcionando
fuente