Можно также попробовать основанный на jQuery метод:
$(document).ready(function() {
$('form:first *:input[type!=hidden]:first').focus();
});
Помещение этого кода в конце Вашего body
тег сфокусирует первый видимый, нескрытый включенный элемент на экране автоматически. Это обработает большинство случаев, которые я могу придумать незамедлительно.
<script>
(function(){
var forms = document.forms || [];
for(var i = 0; i < forms.length; i++){
for(var j = 0; j < forms[i].length; j++){
if(!forms[i][j].readonly != undefined && forms[i][j].type != "hidden" && forms[i][j].disabled != true && forms[i][j].style.display != 'none'){
forms[i][j].focus();
return;
}
}
}
})();
</script>
Также необходимо пропустить любые скрытые исходные данные.
for (var i = 0; document.forms[0].elements[i].type == 'hidden'; i++);
document.forms[0].elements[i].focus();
Существует рецензия здесь, которая может быть полезной: Фокус Набора для первого Ввода на Веб-странице
Если Вы используете Прототип платформа JavaScript тогда, можно использовать метод focusFirstElement :
Form.focusFirstElement(document.forms[0]);
document.forms[0].elements[0].focus();
Это может быть усовершенствовано с помощью цикла для, например, не определенных типов фокуса поля, отключенных полей и так далее. Лучше может быть должен добавить класс = "автофокус" к полю, которое Вы на самом деле делаете , хотят сфокусированный, и цикл по формам [я] .elements [j] поиск того имени класса.
Во всяком случае: это обычно не хорошая идея сделать это на каждой странице. Когда Вы фокусируете вход, пользователь теряет способность к, например, прокрутите страницу с клавиатуры. Если неожиданный, это может быть раздражающим, поэтому только автофокус, когда Вы вполне уверены, что использование поля формы будет тем, что пользователь хочет сделать. т.е. если Вы - Google.
Наиболее полное jQuery выражение, которое я нашел работающим (с помощью более здесь)
$(document).ready(function() {
$('input:visible:enabled:first').focus();
});