Настройка фокуса на кнопке не работает

Я пытаюсь установить фокус на кнопку, когда пользователь нажимает Enter введите в текстовое поле. Но это не работает. Я использую браузер Internet Explorer 8. Я что-то упускаю?

$("input.Box").live('keydown', function(e) {
    if (e.keyCode == 13) {
        e.preventDefault(); 
        $("#button").focus(); // Not working?
    }
});

4 ответов


Microsoft решила, что им не нравится e.keyCode и вместо этого имеют свой собственный синтаксис, e.which.

вы должны проверить для обоих:

$("input.Box").live('keydown', function(e) {
    var keyCode = (window.event) ? e.which : e.keyCode;

    if (keyCode == 13)
        e.preventDefault(); 
        $("#button").focus(); // Not working?
    }
});

проблема в том, что IE не может реагировать достаточно быстро, поэтому вам нужно добавить небольшую задержку между тем, когда


вы уверены, что название правильное? .NET имеет привычку переименовывать вещи. Вы не указываете язык или среду.

попробуйте использовать селектор класса. Дайте кнопке имя класса class="Test" и затем выберите using $(".Text").focus().


убедитесь, что DOM готов, элемент существует, прежде чем пытаться установить фокус.