¿Cómo centrarse en un campo de texto de entrada de formulario al cargar la página usando jQuery?
Probablemente esto sea muy simple, pero ¿alguien podría decirme cómo hacer que el cursor parpadee en un cuadro de texto al cargar la página?
Establezca el foco en el primer campo de texto:
$("input:text:visible:first").focus();
Esto también funciona con el primer campo de texto, pero puedes cambiar el [0] a otro índice:
$('input[@type="text"]')[0].focus();
O puede utilizar el ID:
$("#someTextBox").focus();
Puedes usar HTML5autofocus
para esto. No necesitas jQuery u otro JavaScript.
<input type="text" name="some_field" autofocus>
Tenga en cuenta que esto no funcionará en IE9 y versiones anteriores.
Seguro:
<head>
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$("#myTextBox").focus();
});
</script>
</head>
<body>
<input type="text" id="myTextBox">
</body>
¿Por qué todo el mundo usa jQuery para algo tan simple como esto?
<body OnLoad="document.myform.mytextfield.focus();">
Piense en su interfaz de usuario antes de hacer esto. Supongo (aunque ninguna de las respuestas lo dice) que hará esto cuando el documento se cargue usando la ready()
función jQuery. Si un usuario ya se ha centrado en un elemento diferente antes de que se haya cargado el documento (lo cual es perfectamente posible), entonces es extremadamente irritante para él que le roben el foco.
Puede verificar esto agregando onfocus
atributos en cada uno de sus <input>
elementos para registrar si el usuario ya se ha centrado en un campo del formulario y luego no robar el enfoque si lo ha hecho:
var anyFieldReceivedFocus = false;
function fieldReceivedFocus() {
anyFieldReceivedFocus = true;
}
function focusFirstField() {
if (!anyFieldReceivedFocus) {
// Do jQuery focus stuff
}
}
<input type="text" onfocus="fieldReceivedFocus()" name="one">
<input type="text" onfocus="fieldReceivedFocus()" name="two">