Подтвердить что ты не робот

Новое поведение замещения ввода в Safari 10 - больше не скрывается при изменении через JavaScript

Safari 10.0 в macOS Sierra, по-видимому, изменил способ, которым создает местозаполнитель в вводе, когда значение ввода изменяется с помощью JavaScript. Теперь он также отличается от того, что делает Chrome (53.0.2785.116).

До сих пор при установке входного значения через JavaScript местозаполнитель исчезнет. После того, как значение будет возвращено в исходное состояние с помощью JavaScript, заполнитель снова появится.

Теперь установка входного значения с помощью JavaScript не скрывает местозаполнитель, пока входные фокусы не начнут фокусироваться (например, нажатием кнопки).

Проверьте этот JS Bin для демонстрации: https://jsbin.com/rogoludahu/edit?html,js,output

Это намеченное поведение? Если это так, есть ли уловка обходной путь для скрытия/открытия заглушки после изменения с помощью JavaScript?

Изменить: теперь это было подано на rdar://28412751 для Safari 10 и в Safari Technology Preview.

4b9b3361

Ответ 1

Это, похоже, было разрешено в Safari Technology Preview Release 37 (Safari 11.1, WebKit 12605.1.2.

Пожалуйста, не стесняйтесь обновлять, как только исправление поступит в обычные релизы Safari.

Ответ 2

Я столкнулся с этой проблемой сегодня. Насколько я видел, нет хорошего решения. Моим hacky обходным путем было вызов .focus(), а затем .blur() в элементе, как только ему было присвоено значение.

Ответ 3

Согласно этот поток Apple (и подтвержденный одним из моих сотрудников), это только проблема, если вы открыли Javascript консоль. Таким образом, вам, вероятно, не нужно беспокоиться об обходном пути!