Su pregunta tiene dos partes.
1) ¿Cómo enfocar una entrada en la carga de la página?
Simplemente puede agregar el autofocus
atributo a la entrada.
<input id="myinputbox" type="text" autofocus>
Sin embargo, es posible que esto no sea compatible con todos los navegadores, por lo que podemos usar javascript.
window.onload = function() {
var input = document.getElementById("myinputbox").focus();
}
2) ¿Cómo colocar el cursor al final del texto de entrada?
Aquí hay una solución que no es de jQuery con un código prestado de otra respuesta SO .
function placeCursorAtEnd() {
if (this.setSelectionRange) {
// Double the length because Opera is inconsistent about
// whether a carriage return is one character or two.
var len = this.value.length * 2;
this.setSelectionRange(len, len);
} else {
// This might work for browsers without setSelectionRange support.
this.value = this.value;
}
if (this.nodeName === "TEXTAREA") {
// This will scroll a textarea to the bottom if needed
this.scrollTop = 999999;
}
};
window.onload = function() {
var input = document.getElementById("myinputbox");
if (obj.addEventListener) {
obj.addEventListener("focus", placeCursorAtEnd, false);
} else if (obj.attachEvent) {
obj.attachEvent('onfocus', placeCursorAtEnd);
}
input.focus();
}
Aquí hay un ejemplo de cómo lograría esto con jQuery.
<input type="text" autofocus>
<script>
$(function() {
$("[autofocus]").on("focus", function() {
if (this.setSelectionRange) {
var len = this.value.length * 2;
this.setSelectionRange(len, len);
} else {
this.value = this.value;
}
this.scrollTop = 999999;
}).focus();
});
</script>
Solo un aviso: ahora puede hacer esto con HTML5 sin JavaScript para los navegadores que lo admiten:
Probablemente desee comenzar con esto y desarrollarlo con JavaScript para proporcionar un respaldo para los navegadores más antiguos.
fuente
fuente
fuente
Una forma portátil de hacer esto es usar una función personalizada (para manejar las diferencias del navegador) como esta .
Luego configure un controlador para el
onload
al final de su<body>
etiqueta, como escribió jessegavin:fuente
Funcionando bien...
fuente
solución de una línea muy simple:
fuente
Esto es lo que funciona bien para mí:
fff será una variable global cuyo nombre es absolutamente irrelevante y cuyo objetivo será detener el evento de carga genérico para forzar el foco en esa entrada.
De: http://webreflection.blogspot.com.br/2009/06/inputfocus-something-really-annoying.html
fuente
Si no puede agregar a la etiqueta BODY por alguna razón, puede agregar esto DESPUÉS del formulario:
fuente
Tratar:
Javascript puro:
Jquery:
fuente
Agregue esto a la parte superior de su js
O a html
fuente