У меня есть один ввод текста и одна кнопка (см. Ниже). Как я могу использовать JavaScript, чтобы вызвать событие нажатия кнопки, когда Enterклавиша нажата внутри текстового поля?
На моей текущей странице уже есть другая кнопка отправки, поэтому я не могу просто сделать кнопку отправки кнопкой. И я только хочу, чтобы Enterключ , чтобы нажать на эту кнопку , определенную если она нажата внутри этого один текстовое поле, больше ничего.
<input type="text" id="txtSearch" />
<input type="button" id="btnSearch" value="Search" onclick="doSomething();" />
javascript
button
onclick
onkeypress
kdenney
источник
источник
Ответы:
В jQuery будет работать следующее:
Или в простом JavaScript, следующее будет работать:
источник
keydown
неkeyup
лучшее событие для использования. Кроме того, если вы используете asp.net, вам придетсяreturn false
в конце остановить asp.net от перехвата события.keydown
заключается в том, что удержание клавиши Enter будет запускать событие снова и снова. если вы присоединитесь кkeyup
событию, оно сработает только после отпускания ключа.event.preventDefault();
перед вызовомclick();
функции в то время как моя страница имеет форму , и я переключилсяkeyup
с ,keypress
как это было только работать обработчик для меня, в любом случае, спасибо за аккуратный кусок кода!Тогда просто закодируйте это!
источник
Понял это:
источник
Сделайте кнопку элементом отправки, чтобы она была автоматической.
Обратите внимание, что
<form>
для этой работы вам понадобится элемент, содержащий поля ввода (спасибо, Сергей Ильинский).Не стоит переопределять стандартное поведение, Enterключ всегда должен вызывать кнопку отправки в форме.
источник
<form>
теги выбрасываются иначе либеральным парсером HTML. Таким образом, я должен захватить нажатие клавиш или перебор. (Кстати, нажатие Enter в SharePoint по какой-то причине запускает режим редактирования. Я думаю, лента использует ту же форму.)<button type="submit" onclick="return doSomething(this)">Value</button>
работает, чтобы. Подсказка кроется вreturn
ключевом словеТак как никто еще не использовал
addEventListener
, вот моя версия. Учитывая элементы:Я бы использовал следующее:
Это позволяет вам отдельно изменять тип события и действие, сохраняя HTML-код чистым.
источник
e.preventDefault()
заставить его работать с формами. Смотрите мой (новый) ответ .if (event.keyCode == 13) { event.preventDefault(); go.click();}
В простом JavaScript,
Я заметил, что ответ дается только в jQuery, поэтому я подумал о том, чтобы дать что-то и на обычном JavaScript.
источник
evt.which ? evt.which : evt.keyCode
равенevt.which || evt.keyCode
Один из основных приемов, который вы можете использовать для этого, который я не видел полностью упомянутым. Если вы хотите выполнить действие ajax или какую-либо другую работу с Enter, но не хотите отправлять форму, вы можете сделать это:
Параметр action = "javascript: void (0);" как это ярлык для предотвращения поведения по умолчанию. В этом случае вызывается метод, нажимаете ли вы клавишу ввода или нажимаете кнопку, и для загрузки некоторых данных выполняется вызов ajax.
источник
searchCriteria.blur();
вonsubmit
.Попробуй это:
источник
Для запуска поиска при каждом нажатии клавиши ввода используйте это:
источник
Это просто кое-что из недавнего проекта ... Я нашел его в сети, и я понятия не имею, есть ли лучший способ или нет в простом старом JavaScript.
источник
Используйте
keypress
иevent.key === "Enter"
с современным JS!Mozilla Docs
Поддерживаемые браузеры
источник
Хотя я вполне уверен, что если в форме есть только одно поле и одна кнопка отправки, то нажатие клавиши ввода должно отправить форму, даже если на странице есть другая форма.
Затем вы можете захватить форму при отправке с помощью js и выполнить любые проверки или обратные вызовы, которые вы хотите.
источник
Никто не заметил html attibute "accesskey", который доступен с тех пор.
Это не javascript способ создания сочетаний клавиш.
Сочетания клавиш атрибутов доступа на MDN
Намерен быть использованным как это. Достаточно самого атрибута html, однако мы можем изменить заполнитель или другой индикатор в зависимости от браузера и ОС. Сценарий - это непроверенный метод создания идеи. Вы можете использовать детектор библиотеки браузера, как крошечный Bowser
источник
s
.Это решение для всех любителей YUI :
В этом особом случае у меня были лучшие результаты, используя YUI для запуска объектов DOM, которые были введены с помощью кнопки - но это другая история ...
источник
В Angular2 :
Если вам не нужна визуальная обратная связь в кнопке, будет неплохо не ссылаться на кнопку, а непосредственно вызывать контроллер.
Кроме того, идентификатор не нужен - еще один способ разделения NG2 между видом и моделью.
источник
В этом случае вы также хотите набрать кнопку ввода с отправки на сервер и выполнить сценарий Js.
источник
Эта попытка замены близка, но ведет себя не так, как раньше, в браузере (в Safari 4.0.5 и Firefox 3.6.3), поэтому, в конце концов, я бы не рекомендовал это.
источник
Используйте его при обработке события или в функции, которую вызывает ваш обработчик событий.
Это работает в Internet Explorer и Opera по крайней мере.
источник
Для JQuery Mobile я должен был сделать
источник
.live
устарела в jQuery 1.7. Это все еще считается ОК в jQuery Mobile?Чтобы добавить полностью простое решение JavaScript, которое решило проблему @ icedwater с отправкой формы , вот полное решение с
form
.Скрипка: https://jsfiddle.net/rufwork/gm6h25th/1/
HTML
JavaScript
источник
В современном, недооцененном (без
keyCode
илиonkeydown
) Javascript:источник
Вот мои два цента. Я работаю над приложением для Windows 8 и хочу, чтобы кнопка регистрировала событие нажатия, когда я нажимаю кнопку Enter. Я делаю это в JS. Я попробовал пару предложений, но у меня были проблемы. Это работает просто отлично.
источник
charCode
где-то еще 13, вы стреляетеprintResult()
.Чтобы сделать это с помощью jQuery:
Чтобы сделать это с обычным JavaScript:
источник
Для тех, кто может понравиться краткость и современный подход JS.
где input - это переменная, содержащая ваш элемент ввода.
источник
Для современного JS
keyCode
не рекомендуется использоватьkey
вместоисточник
В jQuery вы можете использовать
event.which==13
. Если у вас естьform
, вы можете использовать$('#formid').submit()
(с правильными слушателями событий, добавленных к представлению указанной формы).источник
Я разработал пользовательский JavaScript для достижения этой функции, просто добавив класс
Пример:
<button type="button" class="ctrl-p">Custom Print</button>
Здесь Проверьте это Fiddle
- или -
проверьте запущенный пример https://stackoverflow.com/a/58010042/6631280
источник
Это также может помочь, небольшая функция JavaScript, которая прекрасно работает:
Я знаю, что этот вопрос решен, но я только что нашел что-то, что может быть полезным для других.
источник