У меня есть стандартная форма входа в систему - текстовое поле электронной почты, поле пароля и кнопка отправки в проекте AIR, использующем HTML / jQuery. Когда я нажимаю Enter на форме, все содержимое формы исчезает, но форма не отправляется. Кто-нибудь знает, если это проблема Webkit (Adobe AIR использует Webkit для HTML), или я что-то сделал?
Я старался:
$('.input').keypress(function (e) {
if (e.which == 13) {
$('form#login').submit();
}
});
Но это ни остановило очистку поведения, ни отправило форму. С формой не связано никаких действий - может ли это быть проблемой? Могу ли я добавить в действие функцию javascript?
Ответы:
Посмотрите на этот ответ о переполнении стека : event.preventDefault () против возврата false
По существу, «возвращение ложным» это то же самое , как вызов
e.preventDefault
иe.stopPropagation()
.источник
Кроме того, чтобы вернуть ложь, как упоминал Джейсон Коэн. Возможно, вам также придется предотвратить дефолт
источник
return false
в событии, управляемом jQuery, автоматически вызывается e.preventDefault ()Не знаю, поможет ли это, но вы можете попытаться смоделировать нажатие кнопки «Отправить» вместо прямой отправки формы. У меня есть следующий код в производстве, и он отлично работает:
Примечание: jQuery ('# submit'). Focus () заставляет кнопку анимироваться при нажатии клавиши ввода.
источник
Вернитесь,
false
чтобы предотвратить продолжение нажатия клавиши.источник
Есть ли какая-то причина, по которой вам нужно подключиться и проверить ключ ввода?
Не могли бы вы просто добавить
к вашей форме и естественно ли она будет отправлена при нажатии Enter? Вы даже можете затем перехватить действие формы
onsubmit
и вызвать оттуда функцию проверки, если хотите ...Вы даже можете использовать в
onsubmit
качестве теста, чтобы увидеть, отправляется ли ваша форма, но она не будет работать, если вы позвонитеform.submit()
.источник
return false;
это.Вот способ сделать это как плагин JQuery (на случай, если вы захотите повторно использовать эту функциональность):
Теперь, если вы хотите украсить
<input>
элемент такой функциональностью, это так просто:источник
Вы также можете просто добавить
onsubmit="return false"
код формы на странице, чтобы предотвратить поведение по умолчанию.Затем подключите (
.bind
или.live
)submit
событие формы к любой функции с jQuery в файле javascript.Вот пример кода, чтобы помочь:
HTML
Javascript + JQuery
Это работает с 2011-04-13, с Firefox 4.0 и jQuery 1.4.3
источник
Это мой код:
источник
Также, чтобы обеспечить доступность, вы должны использовать это, чтобы определить ваш код ключа:
источник
Просто добавление для легкой реализации. Вы можете просто создать форму, а затем скрыть кнопку отправки:
Например:
источник
Сейчас пользуюсь
Сначала я добавил обработчик событий к кнопке отправки, которая выдала мне ошибку.
источник
Сегодня я обнаружил, что событие нажатия клавиши не срабатывает при нажатии клавиши Enter, поэтому вы можете вместо этого переключиться на keydown () или keyup ().
Мой тестовый скрипт:
Вывод в консоль при наборе «A Enter B» на клавиатуре:
Во второй последовательности вы видите, что «нажатие клавиши» отсутствует, но нажатие / отпускание клавиши зарегистрировано и код регистрационной клавиши «13». Согласно документации jQuery для функции keypress () :
Протестировано на IE11 и FF61 на Server 2012 R2
источник
В кодах HTML:
В кодах Js:
источник
Попробуй это:
источник