Safari: отправка формы с помощью xhrPost при нажатии клавиши Enter

Я привязал функцию JavaScript к кнопке отправки формы, в результате чего форма отправляется через запрос xhrPost (используя Dojo). Однако, когда пользователь нажимает «Ввод» в Safari, форма отправляется обычным способом.

Есть ли способ запретить Safari отправлять форму при нажатии клавиши Enter? Могу ли я вместо этого каким-то образом связать свою функцию JavaScript с клавишей ввода?

Заранее большое спасибо!

--Андреас


person devkat    schedule 20.04.2009    source источник


Ответы (3)


Вы возвращаете значение false из обработчика onsubmit? Это все, что требуется для предотвращения обычной отправки формы (при условии, что включен Javascript).

person David-SkyMesh    schedule 17.07.2009

Вероятно, это происходит из-за ошибки в коде обработчика отправки — Safari отправит форму как обычно, если там есть исключение. Проверьте, не показывает ли консоль Safari какие-либо ошибки.

У меня также была похожая проблема однажды, когда элементы <input> находились за пределами тега <form>. Перепроверьте и это тоже, возможно.

person Jesse Rusak    schedule 20.04.2009

Как я решил эту проблему, так это отключить клавишу «Ввод». Не очень элегантный, и все еще ищет лучший подход.

$('form').keypress(function (e){ if((e.which==13){ return false; }});

person Christopher Altman    schedule 11.06.2009