5

在输入框中,我想在向上键 "↑" 上键入时停止光标的传播:

前 :

tes|t// 光标在t之前

后 :

|test// 光标开始

我想防止光标移动,所以它必须停留在t之前。

到目前为止,我正在尝试这个,但它不起作用:

$('input').keyup(function(e) {

    if (e.which == 40) { // up key
        e.stopPropagation();
        e.stopImmediatePropagation();
        e.preventDefault();

        // actions

        return false;
    }

}

这可能吗?

4

1 回答 1

8

您可以keydown为此使用:

$('input').keydown(function(e) {
    if (e.which == 40) { // up key
        return false;
    }
}

keyupkeypress在事件被处理后触发并且keypress应该不会触发不可打印的字符(尽管不同浏览器之间存在一些不一致),因此阻止事件的默认操作keydown是最好的操作方案。

Keep in mind that if you don't have a good reason for preventing the default action (e.g. going through an autocomplete list while having the search field focused), you may be affecting other users' usability as commented by @Kolink.

于 2013-03-29T22:43:04.907 回答