Событие ввода изображения, запускаемое при нажатии кнопки ввода - PullRequest
1 голос
/ 24 марта 2010

У меня странная проблема, когда при входе в текстовое поле ввода запускается событие onclick на входном изображении

<form id="MyForm" action="/someaction">

<input type="image" src="someimage.jpg" onclick="doStuff();$('#MyForm').submit();" />

<input type="text" name="textInput"/>

</form>

Когда курсор находится в текстовом поле, и я нажимаю клавишу ввода, а не отправляемая форма вызывает событие onclick при вводе изображения.

Есть идеи, что происходит?

Ответы [ 3 ]

1 голос
/ 24 марта 2010

Я считаю, что нажатие кнопки ввода во многих случаях считается кликом, включая ссылки. Если вы хотите, чтобы ваше действие выполнялось только при использовании мыши, тогда подумайте об использовании onmousedown или onmouseup вместо onclick. Я бы предложил последнее в вашем случае.

0 голосов
/ 17 марта 2016

Итак, у меня была похожая проблема, и это происходило только в IE. Chrome и Firefox работали просто отлично. Когда вы нажимаете клавишу ввода из поля ввода, он запускает первый ввод type = "image", который нам не нужен, потому что он посылает несколько запросов в IE, а после нажатия клавиши ввода несколько раз происходит сбой.

Быстрый и легкий способ обойти, хотя и не самое лучшее решение, которое мы использовали, заключался в том, чтобы поместить фиктивный ввод type = "image" с возвращаемым значением onclick, равным false, перед остальными, чтобы сработавший не был уволить запрос. Не правильное корневое решение, но хорошее временное решение.

0 голосов
/ 24 марта 2010

Событие onclick вызывается на входных изображениях при нажатии Enter. Я бы обернул <img> в <a>, поскольку, поскольку вы отдельно вызываете submit(), элемент ввода становится избыточным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...