【问题标题】:Virtual keyboard disappears briefly on anchor click虚拟键盘在锚点单击时短暂消失
【发布时间】:2013-05-06 04:01:03
【问题描述】:

我创建了一个文本字段组件,其中包含一个常规文本字段和旁边的清除 (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,并在输入失去焦点之前取消事件会发生什么?
  • @DaggNabbit 好吧,这已经达成了 :) 你想把它写下来作为答案吗?

标签: javascript android webview android-virtual-keyboard


【解决方案1】:

尝试收听touchstart 而不是click,它应该会在输入失去焦点之前触发(而且响应速度也会更快一些)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多