进入输入框,我想停止光标的传播,就像我在向上键“↑”上输入一样:
之前:
tes|t
//光标在t
之后:
|test
//光标开始
我想阻止光标移动,所以它必须停留在 t 之前。
到目前为止,我正在尝试这个,但它不起作用:
$('input').keyup(function(e) {
if (e.which == 40) { // up key
e.stopPropagation();
e.stopImmediatePropagation();
e.preventDefault();
// actions
return false;
}
}
这有可能吗?
最佳答案
您可以使用 keydown
为此:
$('input').keydown(function(e) {
if (e.which == 40) { // up key
return false;
}
}
keyup
在处理完 keypress
事件后触发,keypress
应该不会为非打印字符触发(尽管有一些不同浏览器之间的不一致),因此最好的做法是在 keydown
处阻止事件的默认操作。
请记住,如果您没有充分的理由阻止默认操作(例如,在聚焦搜索字段的同时浏览自动完成列表),您可能会影响其他用户的可用性,正如@Kolink 所评论的那样。
关于javascript 防止光标移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15712462/