Обработчик отправки jQuery для формы с одним полем ввода не запускается в IE - PullRequest
2 голосов
/ 28 июля 2010

У меня есть форма с элементом ввода, но нет кнопки отправки.Я использую jQuery для подключения обработчика onsubmit:

$('#tickerbox-form').submit(function (ev) {
    alert('submit'); // I have other code that actually does something...
    return false;
});

Я хочу, чтобы обработчик (анонимная функция) вызывался при нажатии кнопки Enter в поле ввода.Это работает для меня в Safari, но не в IE.Что я делаю не так?

btw: IE действует на Enter и вызывает POST-запрос к URL для указанного параметра "action" формы.

Ответы [ 3 ]

2 голосов
/ 28 июля 2010

Измените свой код, чтобы получить вместо него клавишу Enter :

$('#tickerbox-form').keypress(function(e){
  if (e.which==13){
    $(this).submit();
  }
});
2 голосов
/ 28 июля 2010

Похоже, IE не отправляет формы при вводе по умолчанию Читайте здесь :

0 голосов
/ 28 июля 2010

В IE это будет работать, только если у вас одно поле ввода, т.е. в вашем случае только tickerbox-form

Даже определение команды в jquery утверждает это.

"В зависимости от браузера, Enter ключ может вызвать только отправку формы если форма содержит ровно один текст поле, или только когда есть отправка кнопка присутствует. Интерфейс должен не полагаться на конкретное поведение для этот ключ, если проблема не вызвана наблюдая событие нажатия клавиши для нажатие клавиши Enter. "

Для ваших целей, если у вас есть больше полей, используйте что-то вроде добавления атрибута ontextchange или как:

$('#tickerbox-form').keydown(function (ev) {
    alert('submit'); // Check here if enter is pressed
    return false;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...