Я ожидаю, что все будет сосредоточено на вводе даже после удаления тега
Ввод теряет фокус после удаления добавленного тега
Шаги по воспроизведению проблемы:
удалить страну из тега
Нажав клавишу Backspace, когда поле ввода пусто, или щелкнув тег?
извините, это нажатием кнопки закрытия на теге. Когда я удаляю его с помощью Backspace, есть автофокус
Спасибо за дополнительную информацию @ekinalcar.
Поскольку элемент с фокусом уничтожается, я предполагаю, что фокус по умолчанию вернется к окну ... не идеально! Я подозреваю, что нам нужно будет записать, откуда пришел фокус, когда приземлился на тег, и вернуть его туда при удалении.
Спасибо за быстрый ответ @ i-like-robots
В событии удаления с обратным пространством, даже если ввод пустой (без тегов), фокус находится на том же входе, а не на окне
Привет, @ekinalcar, мне удалось воссоздать это. Я обнаружил, что с помощью мыши и Firefox, и Safari работают одинаково, как и ожидалось, но в Chrome фокус курсора иногда теряется, даже если событие щелчка фиксируется.
Однако фокус всегда теряется при использовании клавиатуры и «щелчке» по тегам нажатием клавиши пробела, что, конечно, не предназначено. Надеюсь, это исправит периодически возникающую проблему в Chrome.
Есть ли способ сделать это необязательным ? У меня возникает нежелательное поведение при удалении тега, поэтому я не всегда хочу, чтобы ввод возвращал фокус.
Не могли бы вы описать свой вариант использования @krozett ? Я уверен, что есть решения лучше, чем я реализовал в настоящее время, но я думаю, что важно, чтобы курсор двигался _ где-нибудь_ полезным. Возможно, я мог бы добавить условие, которое позволило бы перемещать курсор в обратном вызове handleDelete/onDelete
.
@ i-like-robots Может быть, было бы лучше, если бы я создал для него билет запроса функции. Но в основном у меня есть поведение, специфичное для мобильных устройств, когда пользователь нажимает на ввод, и я использую оверлей, чтобы скрыть все, кроме этого ввода, чтобы освободить место на экране для клавиатуры и предложений автозаполнения. Когда ни один элемент не сфокусирован, видна вся форма. Но при удалении тега я не хочу, чтобы ввод автоматически фокусировался, поскольку, скорее всего, пользователь хотел только удалить тег и не намеревается продолжать вводить текст в поле поиска. Автофокус заставляет ввод вернуться в режим «доминирования экрана», чего я не хочу. Только намеренный фокус должен делать это.
В этом есть смысл @krozett - возможно, лучшим решением было бы записать, откуда пришел фокус (на focusin
), и вернуть туда курсор при удалении тега 🤔
@ i-like-robots В любом случае, я уверен, что v6 скоро выйдет, так что, возможно, мне стоит сначала посмотреть на его поведение, чтобы увидеть, будет ли какой-либо из его обработчиков событий делать то, что мне нужно. 😉