我有一个输入元素类型=' 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>
重现错误:
我想了解为什么它会进入这个错误状态,以及我如何能够避免它。它可能涉及在iframe和文档设置中。我必须在iframe中,我需要更改文本字段的宽度。
或者如何摆脱这种状态。通过侦听keyup并检查插入点处的值与事件中的键值相比,我可以检测到我处于状态。我尝试切换readonly,重置值,focus(),切换inputmode ......
**我想调整元素的大小 - 以便在键盘启动时有更多的水平空间可供输入。
* 我很确定进入这种状态需要其他条件,但我不确定具体情况。