【发布时间】:2014-09-19 07:28:50
【问题描述】:
在 Safari、iOS8 中,关注日期或时间输入会打开日期或时间选择器并允许编辑只读输入的内容。
当聚焦于文本输入时,底部会出现一个工具栏,其中包含上一个、下一个和完成按钮,并且在点击完成或点击页面上的另一个输入之前不会消失。
当输入从 Javascript 以编程方式聚焦时,什么都不会发生,但是:如果将 touchstart 事件侦听器添加到页面的某些部分,触摸任何地方都会显示日期、时间选择器或工具栏,即使监听器为空。
示例代码:
<input id="test1" readonly />
<input id="test2" type="date" readonly />
<input id="test3" type="time" readonly />
<script>
document.getElementById('test1').focus();
window.addEventListener('touchstart', function () {});
</script>
现场示例:http://jsfiddle.net/cw3hump4/embedded/result/
关于如何避免这种情况的任何想法或解决方法?
更新:
出于可用性/可访问性的原因,我需要焦点管理:点击输入会打开一个对话框,当对话框关闭时,我会将焦点放回输入。输入必须是只读的,以防止弹出软键盘/日期选择器/时间选择器,但不能禁用,所以我可以设置一个值,并专注于它。
【问题讨论】:
标签: javascript html ios mobile-safari ios8