con*_*att 109 jquery internet-explorer
当在"金额"输入中按"输入"时,此逻辑会触发,我不相信它(它不在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>
Run Code Online (Sandbox Code Playgroud)
脚本
$("#btnShare").click(function (e) {
    // This logic is firing when pressing "Enter" in the "Amount" input
});
Run Code Online (Sandbox Code Playgroud)
小智 314
我遇到了同样的问题并通过向元素添加type="button"属性来解决它<button>,IE通过该元素将按钮视为一个简单的按钮而不是提交按钮(这是<button>元素的默认行为).
小智 31
我今天遇到了这个问题.IE假定如果您在任何文本字段中按Enter键,您想要提交表单 - 即使字段不是表单的一部分,即使该按钮不是"提交"类型.
您必须使用preventDefault()覆盖IE的默认行为.在你的jQuery选择器中,放入包含你要忽略的输入键的文本框的div - 在你的情况下,"page"div.您也可以指定要特别忽略的文本框,而不是选择整个div.
$('#page').keypress(function(e) {
    if(e.which == 13) { // Checks for the enter key
        e.preventDefault(); // Stops IE from triggering the button to be clicked
    }
});
Run Code Online (Sandbox Code Playgroud)