простой вопрос:
У меня есть поля ввода с внутренними метками! Так же, как окно поиска на этом сайте в правом верхнем углу. Когда я начинаю набирать этикетку внутри, она скрыта.
По соображениям доступности у меня есть реальные теги, абсолютно расположенные за фактическим полем ввода. Поэтому я просто добавляю класс 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);
});
Это все ключевые коды, где я не хочу размыть ярлык! Просто при наборе реальных символов должен быть добавлен класс заполнения.
Btw. Есть ли лучший синтаксис, чтобы написать эти операторы switch во всех случаях?