【发布时间】:2015-12-10 21:07:28
【问题描述】:
在 IE 11 之前,如果您不想输入字符,可以在键码中输入零。
<asp:TextBox id="TextBox1" runat="server" onkeypress="ValidateText();">
</asp:TextBox>
function ValidateText() {
if (!((window.event.keyCode < 48 || window.event.keyCode > 57) && window.event.keyCode != 46)) {
window.event.keyCode = 0;
}
这适用于 IE 10,但不适用于 IE 11。
【问题讨论】:
-
可以取消冒泡吗? msdn.microsoft.com/en-us/library/ms533545(v=vs.85).aspx 我认为这可能仅限于 IE;看这里:stackoverflow.com/a/7596403/424129
-
你可能应该看看DOM event handlers work, cross-browser是怎么做的。 IE11(及其后续版本,Edge 浏览器)在 DOM 事件方面与其他浏览器的工作方式更相似。我可以为您提供这个具体问题的答案,但我认为您可以通过更多地了解该主题获得更好的服务。
-
将 事件对象 放在
window上是一种较旧的方法。多年来,Internet Explorer 一直将 事件对象 传递给处理程序,就像所有其他主流浏览器一样。
标签: asp.net internet-explorer-11