虚拟键盘在锚点上短暂消失



我创建了一个文本字段组件,该组件由一个常规文本字段和旁边的清除(x)按钮组成。

这是标记:

<div class="input-clear">
    <input type="email" name="user" placeholder="Email address" />
    <a href="#">clear</a>
</div>

这是我用来初始化它的代码:

[].forEach.call(document.getElementsByClassName('input-clear'), function(el) {
    var input = el.getElementsByTagName('input')[0],
    a = el.getElementsByTagName('a')[0],
    updateField = function() {
        if (input.value.length) {
            a.style.display = 'inline';
        } else {
            a.style.display = 'none';
        }
    },
    clearField = function(event) {
        event.preventDefault();
        input.value = '';
        input.focus();
        updateField();
    };
    if (input && a) {
        input.addEventListener('keyup', updateField, false);
        input.addEventListener('change', updateField, false);
        a.addEventListener('click', clearField, false);
        updateField();
    }
});

clearField()事件处理程序清空字段,删除清除按钮,然后再次聚焦文本字段。

当点击清除按钮时,虚拟键盘在模糊和聚焦之间短暂消失。是否有可能保持键盘在任何时候都可见?

顺便说一句,我知道当整个文本被选中然后删除时,清除按钮不会消失,但我不太担心这种情况:)

试着听touchstart而不是click,它应该在输入失去焦点之前触发(它也会更灵敏)

相关内容

  • 没有找到相关文章

最新更新