Полный цикл в digital

Управление фокусом, функция focus ()

BX.focus(node) это «битриксовая» обёртка над нативным element.focus(), которая бережно кросс-браузерно ставит курсор в нужное поле, автоматически прокручивает страницу до элемента и защищает вас от ошибок, если нода ещё не попала в DOM.

Зачем управлять фокусом вручную

  • Удобство заполнения форм: сразу поставить курсор в первое поле
  • Валидация: мигом перевести пользователя к первому ошибочному инпуту
  • Доступность (a11y): обеспечить навигацию по клавиатуре и для скрин-ридеров
  • UX-мелочи: открываем поп-ап — и фокус уже в поисковой строке, а не «где-то» на странице
BX.focus = function (node) {
    // внутри — проверка на наличие элемента, вызов .focus() и авто-scrollIntoView при необходимости
}

Главное отличие от element.focus():

  1. BX.focus молча игнорирует попытку сфокусироваться на null/undefined
  2. На старых IE и мобильных браузерах функция задействует костыли Bitrix Core, поэтому работает стабильнее

Практический пример

<div id="togglediv" class="btn">Фокус на t3</div>
<input id="t1" type="text" maxlength="20" value="t1" autofocus>
<input id="t2" type="text" maxlength="20" value="t2">
<input id="t3" type="text" maxlength="20" value="t3">
<style>
.btn{
    cursor:pointer; padding:8px 16px; margin:12px auto; text-align:center;
    background:#4c70ff; color:#fff; border-radius:6px; width:max-content;
}
</style>
<script>
BX.ready(function () {
    BX.bind(BX('togglediv'), 'click', function () {
        BX.focus(BX('t3'));
    });
});
</script>
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!