问题非常基本和根本:Internet Explorer 没有“默认”提交按钮。每个浏览器都可以自由选择在通过密钥提交表单的情况下如何表现ENTER,现代浏览器选择发送第一个提交按钮的值的逻辑方式(就像它被点击一样),而 IE,作为 IE,选择不友好的方式. 不足为奇,也没有办法解决这个“问题”的根源,除非你碰巧为 IE 编写代码。
解决这个问题的唯一方法是使用 JavaScript 并强制浏览器在按下 时选择特定的提交按钮ENTER。为此,首先将唯一 ID 添加到登录按钮:
<input type="submit" name="submit" value="login" id="btnLogin" />
现在将onkeypress
处理程序添加到您的表单标签:
<form action="YourPage.asp" method="POST" onkeypress="if (event.keyCode === 13) { document.getElementById('btnLogin').click(); return false; }">
ENTER这将模拟在表单内按下时单击登录按钮。
这种方法的唯一缺点是,如果您的表单包含<textarea>
,按下ENTER它们也会提交表单,这不是一件好事。为了让他们表现得像他们应该表现的那样,将这个添加到他们每个人中:
<textarea onkeypress="event.cancelBubble = true;">
以上将取消从向上冒泡到<form>
按键事件的事件。