В IE11 наблюдается странное поведение при запуске события keydown.jQuery keydown handler получает событие keydown, когда Ctrl находится в поле URL IE11
Пожалуйста, используйте следующий URL для воспроизведения: http://jsfiddle.net/marbug/79dz6ajz/
Существует форма с двумя полями ввода:
<form>
<input class="usernameField" type="text" ></input><br>
<input class="passwordField" type="password" ></input><br>
</form>
и есть следующие обработчики (Jquery 1.11.0):
$(document).ready(function() {
$('.usernameField').keydown(function(event) {
console.log('usernameField keydown');
});
$('.usernameField').keyup(function(event) {
console.log('usernameField keyup');
});
$('.passwordField').keydown(function(event) {
console.log('passwordField keydown');
});
$('.passwordField').keyup(function(event) {
console.log('passwordField keyup');
});
});
1) Давайте воспроизведем вопрос с именем пользователя
- Положите фокус на поле имени пользователя.
- Затем щелкните по URL-адресу браузера.
- Нажмите Ctrl на клавиатуре.
- Обработчик keydown поля username получает событие. То есть см. «usernameField keydown» в консоли.
2) Теперь давайте сделаем то же самое с полем ввода пароля
- Put фокус на поле ввода пароля.
- Затем щелкните по URL-адресу браузера.
- Нажмите Ctrl на клавиатуре.
- Обработчик keydown поля пароля получает событие. То есть см. «Сбой пароля» в консоли.
Является ли это ошибкой IE11 или jQuery?
P.S. Событие Keyup (для клавиши Ctrl) не запускается во всех этих случаях. Это тоже странно.
Я не понимаю вас вопрос. Вы привязали клавиатуру/ключ к вашим входам. Так почему вы удивляетесь, ничего не происходит, когда они не сосредоточены? И вообще, вы можете сократить свой код: http://jsfiddle.net/79dz6ajz/16/ – vaso123
Хорошо. Я удалил 3). И спасибо за улучшение кода, но я бы предпочел оставить его как есть - текущая версия IMHO более понятна. – marbug
Хорошо, но тогда в чем проблема? Это работает для меня в IE – vaso123