当通过JavaScript改变输入值时,macOS Sierra中的Safari10.0似乎改变了输入中占位符的行为方式。它现在也不同于Chrome (53.0.2785.116)正在做的事情。
到目前为止,通过JavaScript设置输入值时,占位符将消失。通过JavaScript将值重新设置为空后,占位符将重新出现。
现在,通过JavaScript设置输入值不会隐藏占位符,直到输入获得焦点(例如,通过单击)。
查看此JS Bin中的演示:https://jsbin.com/rogoludahu/edit?html,js,output
这是预期的行为吗?如果是这样的话,有没有一种巧妙的解决办法,可以在通过JavaScript进行更改后隐藏/取消隐藏占位符?
编辑:对于Safari10和Safari技术预览版,现在已经在rdar://28412751上提交了这篇文章。
发布于 2017-08-19 18:38:30
在Safari技术预览版37 (Safari11.1,WebKit 12605.1.2)以及常规Safari11.0.3版(WebKit 13604.5.6)中已解决此问题。
发布于 2017-03-30 05:26:55
今天早些时候我遇到了这个问题。据我所知,目前还没有好的解决方案。我的变通办法是,一旦给元素赋值,就调用.focus(),然后在元素上调用.blur()。
发布于 2017-09-27 09:14:49
根据this Apple thread的说法(并得到我的一个同事的确认),只有当你打开了Javascript控制台时,这才是一个问题。因此,您可能不需要担心解决方法!
https://stackoverflow.com/questions/39624902
复制相似问题