IE8 улавливает нажатие клавиши ввода в форме отправки

#jquery #internet-explorer-8

#jquery #internet-explorer-8

Вопрос:

У меня есть эта простая форма:

 <form>
    <input id="txt" type="text">
    <input id="sb" type="submit">
</form>
  

Когда форма отправлена, я хочу знать, была ли она отправлена нажатием enter . Как я могу получить эту информацию?

Я пробовал это с помощью jquery:

 $("#txt").keyup(function(event){if(event.keyCode==13)...});
  

Это работает, за исключением IE8. В IE8 форма отправляется без запуска keyup функции. К сожалению, я должен заставить это работать в IE8.

Комментарии:

1. попробуйте перейти на нажатие клавиши.

2. Кроме того, убедитесь, что сайт не работает в режиме совместимости.

3. Вау, нажатие клавиши делает свое дело.

4. @ry4nolson: Перепишите этот ответ, и я приму его.

Ответ №1:

Используйте .keydown для захвата клавиши ввода перед отправкой формы.

 $("#txt").keydown(function(e){
    if(e.keyCode==13){
        e.preventDefault();
    }
});
  

Демонстрация:http://jsfiddle.net/6fKez /

Комментарии:

1. Спасибо, но не совсем. С preventDefault моя форма не отправлена. И скрипка даже не загружается в моем IE, но, я полагаю, это ошибка скрипки. Но keydown делает свое дело.

2. @MichaelLemke Вы можете удалить .preventDefault , я просто вставил его туда для демонстрации, поскольку вы не опубликовали остальную часть своего кода.