在元素调整大小后,iOS Safari输入类型文本部分失去焦点

时间:2014-06-23 22:33:34

标签: javascript html input mobile-safari

我有一个输入元素类型=' text'在iOS Safari中进入错误状态,使得输入元素显示为聚焦并调度键盘事件但不更新字段的值;用户输入时不会显示新字符。在我正在构建的网站中,我在调整**重点文本输入元素***后触发此状态。我已经制作了一个可靠地再现错误的jsfiddle:

<input id='ipt' type='text' style='width:250px;height40px;'/> 

<script>
  var ipt = document.getElementById('ipt');
  ipt.addEventListener("keyup", onkeyup, false);
  function onkeyup(e){
    ipt.style.width = '100px';  
    ipt.removeEventListener("keyup", onkeyup, false);
  }
</script>

重现错误:

  1. 在iOS Safari中打开http://jsfiddle.net/55dth/embedded/result
  2. 点击输入元素
  3. 缩放以显示输入的全宽(触发错误所必需的)
  4. 输入内容
  5. 我想了解为什么它会进入这个错误状态,以及我如何能够避免它。它可能涉及在iframe和文档设置中。我必须在iframe中,我需要更改文本字段的宽度。

    或者如何摆脱这种状态。通过侦听keyup并检查插入点处的值与事件中的键值相比,我可以检测到我处于状态。我尝试切换readonly,重置值,focus(),切换inputmode ......


    **我想调整元素的大小 - 以便在键盘启动时有更多的水平空间可供输入。

    * 我很确定进入这种状态需要其他条件,但我不确定具体情况。

0 个答案:

没有答案