Эта логика срабатывает при нажатии «Enter» на входе «Amount», и я не верю, что это должно быть (в Chrome этого нет). Как я могу предотвратить это, и если не предотвратить это в IE, обработайте это так, чтобы логика в событии щелчка не срабатывала.
<html>
<body>
<div id="page">
<div id="financed_amount">
<h1>Financed Amount:</h1>
<input type="text" id="amount" value="" />
</div>
<h1>Finance Options</h1>
<div>
<a id="shareLink" rel="leanModal" name="email" href="#email"></a>
<button id="btnShare" class="share">Share this report</button>
</div>
</div>
</body>
</html>
Сценарий
$("#btnShare").click(function (e) {
// This logic is firing when pressing "Enter" in the "Amount" input
});
- Jquery: 1.7.2
- IE 9
- (Работает в Chrome)
jquery
internet-explorer
контакты
источник
источник
Ответы:
У меня была та же проблема, и я решил ее, добавив
type="button"
атрибут к<button>
элементу, благодаря которому IE считает кнопку простой кнопкой, а не кнопкой отправки (что является поведением<button>
элемента по умолчанию ).источник
type="button"
в<button>
элементе. ха-ха ... :) Надеюсь, я вспомню это в следующий раз.Я сегодня столкнулся с этой проблемой. IE предполагает, что если вы нажмете клавишу ввода в любом из текстовых полей, вы захотите отправить форму - даже если поля не являются частью формы и даже если кнопка не относится к типу «отправить».
Вы должны переопределить поведение IE по умолчанию с помощью preventDefault (). В вашем селекторе jQuery вставьте div, содержащий текстовые поля, которые вы хотите игнорировать, клавишу ввода - в вашем случае, div "page". Вместо того, чтобы выбирать весь div, вы также можете указать текстовые поля, которые хотите специально игнорировать.
источник
У меня возникла проблема с ASP.NET WebForms:
Этого НЕЛЬЗЯ решить, просто добавив type = "button", потому что ASP.NET заменяет его на type = "submit" (вы можете увидеть это поведение в браузере, если проверите элемент).
Правильный способ сделать это в asp.net - добавить
к кнопке. ASP автоматически добавит атрибут type = "button".
источник
IE считает, что любой
button
элемент является кнопкой отправки (независимо от того, есть она у васform
или нет). Он также обрабатывает нажатиеEnter
клавиши в элементе формы как неявную отправку формы. Итак, поскольку он думает, что вы пытаетесь отправить свою форму, он полагает, что поможет вам и запуститclick
событие (то, что он считает) кнопкой отправки .Вы можете прикрепить
keyup
событие кinput
или кbutton
и проверить наличиеEnter
ключа (e.which === 13
) иreturn false;
источник
Решение на основе jQuery, которое делает это для каждой кнопки:
Однако по какой-то причине событие щелчка по-прежнему всплывает до родительских элементов ...
источник
Для Chrome вы можете добавить,
<button type="submit" style="display:none"/>
потому что в Chrome тип кнопки по умолчанию - «отправить»Для IE я попытался сделать то же самое с
type="button"
(в IE тип кнопки по умолчанию - «кнопка»), но не сработал.Итак, вот решение. В HTML добавьте
(keypress)=xxx($event)
в свою форму. В ТС,Вышеупомянутое будет работать во всех сценариях, таких как кросс-браузеры, обычный щелчок и перемещение вкладок.
источник