防止在点击输入框外失去焦点

6
我正在使用jQuery开发一个虚拟键盘,遇到的问题是:
当我点击键盘上的按键时,输入框会在点击期间失去焦点。如果输入框中的字母数量超过了输入框大小,则输入框会显示字符串的开头。然后,当释放点击时,输入框重新获得焦点,并且插入符号跳到字符串的结尾。所以这看起来非常难看,给人一种输入内容闪烁的感觉。
theButtonDiv.click(function() {
    attachedInput.value = idOfAttachedInput.value + theActualKey;
    attachedInput.focus();
});

我希望在使用键盘的按钮时,防止输入框失去焦点。

我该如何实现这个功能?

谢谢。


1
你可以尝试使用 .setInterval 并让函数将焦点设置到相关的文本框。就设置方面而言,这相对来说是比较简单的,但我敢打赌肯定有更为简洁的答案存在。 - MoarCodePlz
1
你可能只需要设置光标/插入符号的位置,而不是将焦点放在字段上。请查看这个相关问题 - hughes
2个回答

7

一种方法是在顶级键盘节点上监听“mousedown”事件,并在事件对象上调用preventDefault


3
可以使用这个方法,但需要注意的是,使用此方法后,无法再选择该内容内部的任何部分。 - Tom

-4

我认为你正在寻找一个名为outline的CSS属性。

#yourinput {
    outline: none;
}

这样就可以在焦点在该框时突出显示它。


1
你可能是想回答另一个问题,或者你误解了他的问题。 - Doug S

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接