【问题标题】:Internet Explorer Fires Change Events On KeypressInternet Explorer 在按键上触发更改事件
【发布时间】:2013-03-19 06:17:23
【问题描述】:

IE 在使用箭头导航菜单时触发选择菜单上的更改事件。在非 IE 浏览器中情况并非如此。非 IE 浏览器仅在单击选项时触发事件,或者在使用箭头导航到项目后按 Enter 键。有没有办法解决这个问题?我需要在使用按键导航时不触发该事件。

【问题讨论】:

    标签: javascript internet-explorer drop-down-menu onchange


    【解决方案1】:

    如果可以的话,我会添加自己的更改事件侦听器并以这种方式处理事情。在不知道所有细节的情况下很难说,但我会先看看那里,因为活动无法取消。在这种方法之外,IE 将在值更改时触发事件,因此您对此无能为力。这是 IE 中change/onchange 的链接。它实际上在文档中说明了这一点。

    要调用此事件,请执行以下操作之一:

    • 使用鼠标或键盘导航在选择对象中选择不同的选项。
    • 更改文本区域中的文本,然后导航到对象之外。

    它很臭,但其中之一是您在使用选择字段时必须考虑的问题。

    【讨论】:

      【解决方案2】:

      适用于我的情况的解决方案如下。

      • 绑定到blur 事件而不是change 事件。

      这引入了另一个问题,当我最初加载页面时,select 会触发 change 事件,我需要 blur 绑定中的代码才能生效。绑定到change 并让它触发blur 会导致大量递归。解决方案是创建一个在启动时运行的 init 函数。

      initData : function(){
          var t = this,
              formSelects = 'select';
      
          jQuery.each(formSelects, function(){
              // do my code here that normally happens in blur.
          })
      }
      

      【讨论】:

        猜你喜欢
        • 2011-08-29
        • 1970-01-01
        • 1970-01-01
        • 2014-02-19
        • 2010-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多