Я хотел бы определить, нажал ли пользователь с Enterпомощью jQuery.
Как это возможно? Требуется ли плагин?
РЕДАКТИРОВАТЬ: похоже, мне нужно использовать keypress()
метод.
Я хотел бы знать, если кто-нибудь знает, есть ли проблемы с браузером с этой командой - например, есть ли какие-либо проблемы совместимости браузера, о которых я должен знать?
Ответы:
Весь смысл jQuery в том, что вам не нужно беспокоиться о различиях между браузерами. Я уверен, что вы можете смело идти в enter13 лет во всех браузерах. Итак, имея это в виду, вы можете сделать это:
источник
$(window)
IE) quirksmode.org/dom/events/keys.htmlЯ написал небольшой плагин, чтобы упростить привязку события «нажата клавиша ввода»:
Применение:
источник
#input
на<input>
поле)$("#input").on("someevent","someselector",function () {})
Я не мог заставить работать код, написанный @Paolo Bergantino, но когда я изменил его на
$(document)
иe.which
вместоe.keyCode
этого, я обнаружил, что он работает безошибочно.Ссылка на пример на JS Bin
источник
Я обнаружил, что это более кросс-браузерная совместимость:
источник
Вы можете сделать это с помощью дескриптора события jquery 'keydown'
источник
Используйте
event.key
и современный JS!или без jQuery:
Mozilla Docs
Поддерживаемые браузеры
источник
Я провел некоторое время, придумывая это решение, надеюсь, оно кому-нибудь поможет.
источник
Есть метод события keypress () . Номер ascii клавиши Enter равен 13 и не зависит от того, какой браузер используется.
источник
Незначительное расширение ответа Андреа, приведенного выше, делает вспомогательный метод более полезным, когда вы также можете захватить измененные нажатия Enter (например, Ctrl-Enter или Shift-Enter). Например, этот вариант позволяет связывать как:
отправить форму, когда пользователь нажимает Ctrl-Enter с фокусом на текстовой области этой формы.
(см. также Ctrl + Enter jQuery в TEXTAREA )
источник
В некоторых случаях вам может потребоваться скрыть ENTERклавишу для определенной области страницы, но не для других областей страницы, например, страницы ниже, содержащей заголовок
<div>
с полем ПОИСК .Мне понадобилось немного времени, чтобы понять, как это сделать, и я публикую здесь простой, но полный пример для сообщества.
Ссылка на JSFiddle Playground :
[Submit]
кнопка ничего не делает, но нажатие ENTERодного из элементов управления Text Box не отправит форму.источник
Попробуйте это, чтобы обнаружить нажатие клавиши Enter.
См. Демо @ обнаружение нажатия клавиши ввода на клавиатуре
источник
Поскольку
keypress
событие не охватывается какой-либо официальной спецификацией, фактическое поведение, возникающее при его использовании, может отличаться в зависимости от браузера, версии браузера и платформы.Надеюсь это будет полезно!
источник
keypress
в спецификации больше нет, заключается в том, что она устарела ( MDN ).Самый простой способ определить, нажал ли пользователь клавишу ввода, - это использовать номер клавиши, номер клавиши ввода = 13, чтобы проверить значение клавиши на вашем устройстве.
нажав клавишу ввода, вы получите результат как 13. используя значение ключа, вы можете вызывать функцию или делать все, что пожелаете
если вы хотите нажать на кнопку после нажатия клавиши ввода, вы можете использовать код
Надеюсь, это поможет
источник
Я думаю, что самый простой способ будет использовать ванильный javacript:
источник
источник
источник
Я использовал
$(document).on("keydown")
.В некоторых браузерах
keyCode
это не поддерживается. То же самое сwhich
так, еслиkeyCode
не поддерживается, вам нужно использовать,which
и наоборот.источник