【发布时间】:2012-02-03 07:03:57
【问题描述】:
简单的问题: 我有带有内部标签的输入字段!就像这个网站右上角的搜索框一样。当我开始输入标签时,它是隐藏的。
出于可访问性的原因,我将真正的标签绝对放置在实际输入字段的后面。因此,我只是在输入字段中添加了一个 fill 类,这样背景颜色就不再透明了。
inputs.keydown(function (e) {
$(this).addClass(fill);
});
除了一点小瑕疵,一切都很好。 每当我关注输入字段并按下“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);
});
这些将是我不想模糊标签的所有键码!就在输入真实字符时,应该添加填充类。 顺便提一句。是否有更好的语法来编写所有情况下的这些 switch 语句?
【问题讨论】:
-
jQuery 事件对象 api.jquery.com/category/events/event-object 具有
altKey,ctrlKey,metaKey,shiftKey属性,您可能还想检查和处理这些属性。
标签: javascript jquery keyboard keydown