Ответ 1
Это, похоже, было разрешено в Safari Technology Preview Release 37 (Safari 11.1, WebKit 12605.1.2.
Пожалуйста, не стесняйтесь обновлять, как только исправление поступит в обычные релизы Safari.
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.
Это, похоже, было разрешено в Safari Technology Preview Release 37 (Safari 11.1, WebKit 12605.1.2.
Пожалуйста, не стесняйтесь обновлять, как только исправление поступит в обычные релизы Safari.
Я столкнулся с этой проблемой сегодня. Насколько я видел, нет хорошего решения. Моим hacky обходным путем было вызов .focus()
, а затем .blur()
в элементе, как только ему было присвоено значение.
Согласно этот поток Apple (и подтвержденный одним из моих сотрудников), это только проблема, если вы открыли Javascript консоль. Таким образом, вам, вероятно, не нужно беспокоиться об обходном пути!