新的输入占位符行为在Safari 10中-不再隐藏通过JavaScript更改
New input placeholder behavior in Safari 10 - no longer hides on change via JavaScript
macOS Sierra中的Safari 10.0似乎在通过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技术预览。
我今天早些时候遇到了这个问题。就我所见,没有好的解决办法。我的破解方法是在元素上调用.focus()
,然后在值给定后立即调用.blur()
。
此问题已在Safari技术预览版37 (Safari 11.1, WebKit 12605.1.2)以及常规Safari 11.0.3 (WebKit 13604.5.6)中解决。
根据这个Apple线程(并由我的一个同事确认),只有当你打开Javascript控制台时才会出现这个问题。所以,你可能不需要担心变通!
我不知道错误是否返回或从未正确修复(Safari 11.0.3)。可以用约书亚的jsbin复制。我们的解决方案是重新绘制变化领域。我们正在使用ExtJS,所以这是一个字段覆盖的剪辑,但应该能够在任何其他框架或香草中应用它。
if(Ext.isSafari && !Ext.isEmpty(me.emptyText)) {
me.on('change', function() {
var me = this;
if(me.rendered && me.el && Ext.isFunction(me.el.redraw)) {
me.el.redraw()
}
})
}
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 显示5秒后隐藏潜水
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 浮动页脚栏-使用Bootstrap隐藏
- 在jquery中为显示/隐藏设置cookie
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 从var向代码隐藏函数传递值
- Image赢得't隐藏在滚动jQuery上
- 具有rowGrouping的数据表无法隐藏列
- Jquery隐藏未触发
- JavaScript 检查隐藏字段中的值并将其设置为隐藏字段值
- 分部隐藏在jquery中不起作用
- 点击后隐藏潜水?(但如果Div是一面旗帜呢?)
- javascript.点击隐藏事件故障
- 为什么动画完成后我的元素不再隐藏
- jquery ui模式框中的表单隐藏后,键盘将不再被调用
- 不再使用 jQuery 悬停时隐藏
- 新的输入占位符行为在Safari 10中-不再隐藏通过JavaScript更改