onClick не стреляет только с одним входом при нажатии Enter

Попробуйте поместить document.getElementById в setTimeout()

Например.

setTimeout(function(){
    console.log(document.getElementById('whatever'));
}, 100);

Если это сработает, тогда это просто проблема синхронизации.

5
задан Rich Churcher 14 January 2018 в 19:55
поделиться

5 ответов

onclick кнопки должен (я думать), только стреляют, если кнопка на самом деле нажата (или когда фокус находится на нем, и пользовательские щелчки входят), если Вы не добавили логику для изменения этого.

Добавление дополнительного текстового поля возможно изменяющий порядок вкладки Ваших элементов (возможно, делающий кнопку управление по умолчанию в этом случае)?

4
ответ дан 13 December 2019 в 22:20
поделиться

Если Вы хотите, чтобы код работал, когда пользователь нажимает Enter, просто используйте onSubmit обработчик.

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

1
ответ дан 13 December 2019 в 22:20
поделиться

Интересно при нажатии на экран (удалите фокус из текстового поля) на втором примере только с одним текстовым полем, событие onClick огни... Таким образом, это не ожидаемое поведение, так как только происходит, когда у Вас есть всего одно текстовое поле, и у Вас есть внимание на текстовое поле.
Я боюсь, что Вы нашли ошибку на браузере, и необходимо будет найти обходное решение или избегать использования onClick события в этом случае.
Я использую onSubmit событие для проверок, потому что это - "более безопасное" событие, которое, более вероятно, будет работать над различными браузерами и ситуациями.

1
ответ дан 13 December 2019 в 22:20
поделиться

Из любопытства Вы используете DOCTYPE, и если так, который? Я не говорю, что несовместимости с DOCTYPE являются проблемой, но режим причуд - что-то для исключения прежде, чем попробовать что-либо еще.

1
ответ дан 13 December 2019 в 22:20
поделиться

С самого начала браузеров одно поле ввода в форме отправляло при вводе с кнопкой отправки или без нее. Это было для того, чтобы людям было проще искать сайт из одного поля поиска.

Если вам нужно выполнить какой-либо javascript в форме, безопаснее использовать onsubmit формы (и возвращать false, чтобы остановить отправку), а не выполнять скрипт в onClick кнопки submit. Если вам нужно выполнить javascript из кнопки, используйте type="button" вместо type="submit" - надеюсь, это прояснило, что я имел в виду

3
ответ дан 13 December 2019 в 22:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: