Відповіді:
Якщо ви використовуєте jquery:
$(function() {
$("#Box1").focus();
});
або прототип:
Event.observe(window, 'load', function() {
$("Box1").focus();
});
або звичайний javascript:
window.onload = function() {
document.getElementById("Box1").focus();
};
хоча майте на увазі, що це замінить інші на оброблювачах завантаження, тому шукайте addLoadEvent () в Google для безпечного способу додавання обробників завантаження, а не заміни.
У HTML є autofocus
атрибут для всіх форм форм. У ній є хороший підручник у Dive Into HTML 5 . На жаль, на даний момент не підтримується версіями IE менше 10.
Щоб використовувати атрибут HTML 5 і повернутися до параметра JS:
<input id="my-input" autofocus="autofocus" />
<script>
if (!("autofocus" in document.createElement("input"))) {
document.getElementById("my-input").focus();
}
</script>
Не потрібні обробники jQuery, onload або подій, оскільки JS знаходиться нижче елемента HTML.
Редагувати: ще одна перевага полягає в тому, що він працює у вимкненому JavaScript у деяких браузерах, і ви можете видалити JavaScript, коли не хочете підтримувати старі браузери.
Редагувати 2: Firefox 4 тепер підтримує autofocus
атрибут, просто залишаючи IE без підтримки.
autofocus="aufofocus"
? Всі номери ви при умови , що просто сказати , щоб додати атрибут: autofocus
.
attribute="value"
булеві атрибути. HTML5 з'явився разом із "синтаксисом порожнього атрибута", і ми втратили надмірність. Тепер ми можемо зробити<input checked disabled autofocus data-something>
Вам потрібно використовувати javascript:
<BODY onLoad="document.getElementById('myButton').focus();">
@Ben зазначає, що не слід додавати обробників подій, як це. Хоча це ще одне питання, він рекомендує використовувати цю функцію:
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
А потім поставте виклик на addLoadEvent на свою сторінку та посилайте на функцію, яка задає фокус на потрібне текстове поле.
Просто напишіть автофокус у текстовому полі. Це просто, і він працює так:
<input name="abc" autofocus></input>
Сподіваюся, це допомагає.
Ви можете це легко зробити, використовуючи jquery таким чином:
<script type="text/javascript">
$(document).ready(function () {
$("#myTextBoxId").focus();
});
</script>
зателефонувавши в цю функцію в $(document).ready()
.
Це означає, що ця функція буде виконуватися, коли DOM буде готовий.
Для отримання додаткової інформації про функцію READY зверніться до сторінки: http://api.jquery.com/ready/
Використання простого html та javascript ванілі
<input type='text' id='txtMyInputBox' />
<script language='javascript' type='text/javascript'>
function SetFocus()
{
// safety check, make sure its a post 1999 browser
if (!document.getElementById)
{
return;
}
var txtMyInputBoxElement = document.getElementById("txtMyInputBox");
if (txtMyInputBoxElement != null)
{
txtMyInputBoxElement.focus();
}
}
SetFocus();
</script>
Для тих, хто там використовує .net фреймворк та asp.net 2.0 або вище, його тривіальність. Якщо ви використовуєте старіші версії фреймворку, вам потрібно буде написати трохи javascript, подібний до вище.
У вашому оброблювачі OnLoad (як правило, завантаження сторінок, якщо ви використовуєте шаблон фондової сторінки, що постачається разом із візуальною студією), ви можете використовувати:
C #
protected void PageLoad(object sender, EventArgs e)
{
Page.SetFocus(txtMyInputBox);
}
VB.NET
Protected Sub PageLoad(sender as Object, e as EventArgs)
Page.SetFocus(txtMyInputBox)
End Sub
(* Примітка. Я вилучив символ підкреслення з імені функції, яке, як правило, Page_Load, оскільки в блоці коду він відмовився візуалізувати належним чином! Я не міг побачити в документації на розмітку, як отримати підкреслення, щоб візуалізувати без нагляду.)
Сподіваюся, це допомагає.
IMHO, "найчистіший" спосіб вибору першого, видимого, включеного текстового поля на сторінці - це використовувати jQuery і зробити щось подібне:
$(document).ready(function() {
$('input:text[value=""]:visible:enabled:first').focus();
});
Сподіваюся, що це допомагає ...
Дякую...
<html>
<head>
<script language="javascript" type="text/javascript">
function SetFocus(InputID)
{
document.getElementById(InputID).focus();
}
</script>
</head>
<body onload="SetFocus('Box2')">
<input id="Box1" size="30" /><br/>
<input id="Box2" size="30" />
</body>
</html>
Як загальна порада, я б рекомендував не красти фокус із адресного рядка. ( Джефф уже говорив про це. )
Завантаження веб-сторінки може зайняти деякий час, а це означає, що зміна фокусу може відбутися через деякий час після введення користувачем URL-адреси pae. Тоді він міг передумати і повернутися до введення URL-адреси, поки ви завантажуєте свою сторінку та вкрадете фокус, щоб помістити її у текстове поле.
Це одна і єдина причина, яка змусила мене видалити Google як свою стартову сторінку.
Звичайно, якщо ви керуєте мережею (локальною мережею) або якщо зміна фокуса полягає у вирішенні важливої проблеми юзабіліті, забудьте все, що я щойно сказав :)
У мене була дещо інша проблема. Я хотів autofocus
, але хотів, щоб placeholder
текст залишився, перехресний браузер. Деякі браузери приховали б placeholder
текст, як тільки поле зосередилося, деякі збережуть його. Мені довелося або заставити заповнювачі, які залишаються в крос-браузері, що має дивні побічні ефекти, або перестати користуватися autofocus
.
Тому я прослухав перший ключ, введений проти тегу body, і перенаправив цей ключ у цільове поле введення. Тоді всі учасники подій вбиваються, щоб уникнути чистоти.
var urlInput = $('#Url');
function bodyFirstKey(ev) {
$('body').off('keydown', bodyFirstKey);
urlInput.off('focus', urlInputFirstFocus);
if (ev.target == document.body) {
urlInput.focus();
if (!ev.ctrlKey && !ev.metaKey && !ev.altKey) {
urlInput.val(ev.key);
return false;
}
}
};
function urlInputFirstFocus() {
$('body').off('keydown', bodyFirstKey);
urlInput.off('focus', urlInputFirstFocus);
};
$('body').keydown(bodyFirstKey);
urlInput.focus(urlInputFirstFocus);
Можна встановити autofocus
на вхідних елементах
<input type="text" class="b_calle" id="b_calle" placeholder="Buscar por nombre de calle" autofocus="autofocus">
Якщо ви використовуєте ASP.NET, ви можете використовувати
yourControlName.Focus()
в коді на сервері, який додасть відповідний JavaScript на сторінку.
Інші рамки на стороні сервера можуть мати еквівалентний метод.