代码之家  ›  专栏  ›  技术社区  ›  Roy Tang

如何处理IE select onchange和ajax请求

  •  1
  • Roy Tang  · 技术社区  · 16 年前

    这在Firefox中很好。但是,在IE中,每次使用鼠标滚轮快速滚动组合框选项时,都会触发更改事件。这很麻烦,因为它会向服务器发送请求,并且不能保证请求以正确的顺序返回,因此客户端状态可能会变得不一致。

    现在,虽然这似乎是可行的,但它有点黑客,我想知道是否有更好的方法。是否有一个不同的事件,我们可以钩住它,这样它就不会在使用鼠标滚动时重复触发?或者我们应该完全禁用鼠标旋转(onmouseheel=“return false;”)?Firefox似乎不支持鼠标旋转通过组合框,但我不确定禁用鼠标旋转是否是一个严重的可用性问题。

    有人能推荐其他解决方案吗?

    3 回复  |  直到 16 年前
        1
  •  1
  •   Marcus Pope    16 年前

    当然,这有点老套,但这是我找到的最好的解决方案。我使用该模式来解决几个不同的问题,包括服务器请求、自动保存用户文本条目、自动完成文本条目、拼写检查等。这是确定用户交互暂停的好方法。将逻辑抽象为一个“onPause”函数,它将看起来不那么粗糙:D

        2
  •  1
  •   Ionuț G. Stan    16 年前

    我还没有真正尝试过这一点(除了回答这个问题的一些测试),但也许你可以使用 onblur onchange 事件,以了解 事件

        3
  •  0
  •   TheVillageIdiot    16 年前

    您必须在ajax请求中发送当前选项值,现在如果您在ajax响应中返回此值,您可以检查当前选择的选项是否与响应返回的选项相同,然后使用它,否则在选择已更改的同时,请等待其他响应!