javascript阻止光标移动

Men*_*cia 5 javascript preventdefault stoppropagation

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

之前:

tes|t//光标在t之前

之后:

|test //光标开始了

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

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

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

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

        // actions

        return false;
    }

}
Run Code Online (Sandbox Code Playgroud)

这还有可能吗?

Fab*_*tté 5

你可以用keydown它:

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

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

请记住,如果您没有充分的理由阻止默认操作(例如,在关注搜索字段时浏览自动完成列表),则可能会影响其他用户的可用性,如@Kolink所评论.