锚点击时虚拟键盘会短暂消失

时间:2013-05-06 04:01:04

标签: javascript android webview android-virtual-keyboard

我创建了一个文本字段组件,其中包含常规文本字段和旁边的清除(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()事件处理程序清空该字段,删除清除按钮,然后再次聚焦文本字段。

问题

单击清除按钮时,虚拟键盘会在模糊和焦点之间短暂消失。是否可以随时保持键盘可见?

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

1 个答案:

答案 0 :(得分:1)

尝试收听touchstart而不是click,它应该在输入失去焦点之前触发(并且它也会更敏感)。