Как автоматически установить фокус на текстовое поле при загрузке веб-страницы?
Есть ли для этого тег HTML или это нужно делать через Javascript?
javascript
html
Марк Бик
источник
источник
Ответы:
Если вы используете jquery:
или прототип:
или простой JavaScript:
хотя имейте в виду, что это заменит другие обработчики нагрузки, поэтому поищите addLoadEvent () в google для безопасного способа добавления обработчиков загрузки, а не замены.
источник
В HTML есть
autofocus
атрибут для всех полей формы. В Dive Into HTML 5 есть хорошее руководство . К сожалению, в настоящее время он не поддерживается версиями IE менее 10.Чтобы использовать атрибут HTML 5 и вернуться к опции JS:
Никакие jQuery, onload или обработчики событий не требуются, потому что JS находится ниже HTML-элемента.
Изменить: еще одним преимуществом является то, что он работает с отключенным JavaScript в некоторых браузерах, и вы можете удалить JavaScript, если вы не хотите поддерживать старые браузеры.
Редактировать 2: Firefox 4 теперь поддерживает
autofocus
атрибут, просто оставляя IE без поддержки.источник
autofocus="aufofocus"
? Все ссылки вы при условии , что просто сказать , чтобы добавить атрибут:autofocus
.attribute="value"
для логических атрибутов. HTML5 пришел вместе с «синтаксисом пустых атрибутов», и мы удалили избыточность. Теперь мы можем сделать<input checked disabled autofocus data-something>
Вам нужно использовать JavaScript:
@Ben отмечает, что вы не должны добавлять обработчики событий, подобные этому. Хотя это еще один вопрос, он рекомендует вам использовать эту функцию:
А затем поместите вызов addLoadEvent на своей странице и обратитесь к функции, которая устанавливает фокус на нужное вам текстовое поле.
источник
Просто напишите автофокус в текстовом поле. Это просто и работает так:
Надеюсь это поможет.
источник
Вы можете сделать это легко, используя jquery следующим образом:
вызывая эту функцию в
$(document).ready()
.Это означает, что эта функция будет выполняться, когда DOM будет готов.
Для получения дополнительной информации о функции ГОТОВ обратитесь к: http://api.jquery.com/ready/
источник
Используя простой ванильный HTML и JavaScript
Для тех, кто использует .net Framework и Asp.net 2.0 или выше, это тривиально. Если вы используете более старые версии фреймворка, вам нужно написать некоторый JavaScript, похожий на приведенный выше.
В вашем обработчике OnLoad (обычно page_load, если вы используете шаблон стоковой страницы, поставляемый с Visual Studio), вы можете использовать:
C #
VB.NET
(* Примечание: я удалил символ подчеркивания из имени функции, которое обычно является Page_Load, поскольку в блоке кода он отказывался правильно отображаться! Я не видел в документации по разметке, как получить подчеркивания для отображения без экранирования.)
Надеюсь это поможет.
источник
ИМХО, самый «чистый» способ выбрать первое, видимое, включенное текстовое поле на странице - это использовать jQuery и сделать что-то вроде этого:
Надеюсь, это поможет...
Спасибо...
источник
источник
Как общий совет, я бы рекомендовал не красть фокус с адресной строки. ( Джефф уже говорил об этом. )
Загрузка веб-страницы может занять некоторое время, а это означает, что смена фокуса может произойти через некоторое время после того, как пользователь введет URL-адрес pae. Тогда он мог бы передумать и вернуться к вводу URL, пока вы будете загружать свою страницу и красть фокус, чтобы поместить ее в текстовое поле.
Это единственная причина, которая заставила меня удалить Google в качестве стартовой страницы.
Конечно, если вы контролируете сеть (локальную сеть) или если смена фокуса направлена на решение важной проблемы юзабилити, забудьте все, что я только что сказал :)
источник
У меня была немного другая проблема. Я хотел
autofocus
, но хотел, чтобыplaceholder
текст оставался кросс-браузерным. Некоторые браузеры скрывалиplaceholder
текст, как только поле фокусировалось, некоторые сохраняли его. Мне нужно было либо заставить заполнители оставаться кросс-браузерными, что имеет странные побочные эффекты, либо прекратить использованиеautofocus
.Поэтому я прослушал первый ключ, введенный против тега body, и перенаправил этот ключ в целевое поле ввода. Затем все задействованные обработчики событий убиваются, чтобы содержать вещи в чистоте.
https://jsfiddle.net/b9chris/qLrrb93w/
источник
Можно установить
autofocus
на элементы вводаисточник
Если вы используете ASP.NET, то вы можете использовать
в коде на сервере, который добавит соответствующий JavaScript на страницу.
Другие серверные инфраструктуры могут иметь эквивалентный метод.
источник
Используйте приведенный ниже код. Для меня это работает
источник