Safari 10中的新输入占位符行为 - 不再通过JavaScript隐藏更改

Jos*_*hua 21 html javascript safari macos-sierra

当通过JavaScript更改输入值时,macOS Sierra中的Safari 10.0似乎改变了输入中占位符的行为方式.它现在也不同于Chrome(53.0.2785.116)正在做的事情.

到目前为止,当通过JavaScript设置输入值时,占位符将消失.通过JavaScript将值设置为空后,占位符将重新出现.

现在,通过JavaScript设置输入值不会隐藏占位符,直到输入获得后焦点(例如通过单击).

检查这个JS Bin的演示:https://jsbin.com/rogoludahu/edit? html,js,output

这是预期的行为吗?如果是这样,在通过JavaScript进行更改后隐藏/取消隐藏占位符是否有一个聪明的解决方法?

编辑:现在已经在rdar:// 28412751上提交了Safari 10和Safari技术预览版.

小智 5

我今天早些时候遇到了这个问题.据我所见,没有好的解决方案.我哈克的解决方法是调用.focus(),然后.blur()作为值给它尽快的元素.


Jos*_*hua 2

此问题已在 Safari 技术预览版 37(Safari 11.1、WebKit 12605.1.2)以及常规 Safari 版本 11.0.3(WebKit 13604.5.6)中得到解决。