mat*_*att 2 javascript keyboard jquery keydown
一个简单的问题:我的输入字段带有内部标签!就像该网站右上角的搜索框一样。当我开始键入标签时,其中的标签是隐藏的。
出于可访问性原因,我将真实标签绝对放置在实际输入字段的后面。因此,我只是将一个类添加fill到输入字段,以使背景色不再透明。
inputs.keydown(function (e) {
$(this).addClass(fill);
});
Run Code Online (Sandbox Code Playgroud)
一切正常,除了有一点缺陷。每当我关注输入字段并按下“ Shift”,“ Ctrl”或“ CMD”之类的键时,标签就会消失。但是,这还没有输入!
知道怎么做吗?
inputs.keydown(function (e) {
switch (e.keyCode) {
case 13: // Enter
case 16: // Shift
case 17: // Ctrl
case 18: // Alt
case 19: // Pause/Break
case 20: // Caps Lock
case 27: // Escape
case 35: // End
case 36: // Home
case 37: // Left
case 38: // Up
case 39: // Right
case 40: // Down
// Mac CMD Key
case 91: // Safari, Chrome
case 93: // Safari, Chrome
case 224: // Firefox
break;
}
$(this).addClass(fill);
});
Run Code Online (Sandbox Code Playgroud)
这些就是我不想模糊标签的所有键码!仅当键入实字符时,才应添加填充类。顺便说一句。是否有更好的语法来编写所有情况下的那些switch语句?
keypress()如果要处理字符输入,请改用。它已经可以忽略大多数要避免的键。它确实在触发Enter,但是您可以按照此处已经建议的相同方式轻松地对其进行解释。
$("input").keypress(function (e) {
if( e.which == 13 ){ return false; }
$(this).addClass(fill);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3779 次 |
| 最近记录: |