使用 jQuery 以编程方式触发 IE 的 Javascript 事件

2023-11-23

当 IE 中的用户触发事件时,它被设置为window.event目的。查看触发事件的唯一方法是访问window.event对象(据我所知)

如果以编程方式触发事件(例如通过 jQuery 触发事件),这会导致 ASP.NET 验证器出现问题。在这种情况下,window.event对象存储最后一个用户触发的事件。

当。。。的时候onchange对于附加了 ASP.NET 验证器的文本框以编程方式触发事件,验证会中断,因为它正在查看触发最后一个事件的元素,而该元素不是验证器所针对的元素。

有谁知道解决这个问题的方法吗?这似乎是一个可以解决的问题,但从网上看,大多数人只是想办法忽略问题而不是解决它。


解释一下我具体在做什么:
我在文本框上使用 jQuery 时间选择器插件,该文本框还有 2 个与之关联的 ASP.NET 验证器。当时间更改时,我使用更新面板回发到服务器以动态执行一些操作,因此我需要触发 onchange 事件才能触发该文本框的回发。

jQuery 时间选择器通过创建一个隐藏的无序列表进行操作,单击文本框时该列表将可见。当单击列表项之一时,将通过 jQuery 以编程方式为文本框触发“change”事件change() method.

因为该事件的触发器是一个列表项,所以 IE 会看到项目清单作为事件的来源,而不是文本框,就像它应该的那样。

我不太关心这个 ASP.NET 验证器在文本框更改后立即工作,我只需要“change“要处理的事件,因此为文本框调用我的回发事件。问题是验证器在 IE 中引发异常,从而阻止触发任何事件。

Firefox(我假设其他浏览器)没有这个问题。由于事件模型不同,只有IE。有没有人遇到过这个问题并看到如何解决它?


我发现其他几个地方也报告了这个问题,但他们没有提供解决方案:

  • jQuery 论坛,带有 jQ​​uery UI Datepicker 和 ASP.NET Validator
  • ASP.NET 论坛,ValidatorOnChange() 函数的错误

我有同样的问题。使用这个函数解决:

jQuery.fn.extend({
    fire: function(evttype){ 
        el = this.get(0);
        if (document.createEvent) {
            var evt = document.createEvent('HTMLEvents'); 
            evt.initEvent(evttype, false, false); 
            el.dispatchEvent(evt); 
        } else if (document.createEventObject) { 
            el.fireEvent('on' + evttype); 
        }
        return this;
    }
});

所以我的日期选择器的“onSelect”事件处理程序如下所示:

if ($.browser.msie) {
    datepickerOptions = $.extend(datepickerOptions, { 
        onSelect: function(){
            $(this).fire("change").blur();
        }
    });
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 jQuery 以编程方式触发 IE 的 Javascript 事件 的相关文章

随机推荐

  • 根据任何选定列中的值对 data.table 进行子集化的有效方法[重复]

    这个问题在这里已经有答案了 假设我有一个包含 6 列的 data table library data table set seed 123 dt lt data table id 1 100 p1 sample 1 10 100 repl
  • 使用 Blazor 访问设备摄像头

    我有 Blazor Web Assembly PWA 如何打开设备本机摄像头 我正在尝试编写一个 PWA 来捕获和保存图片 EDIT 想要将捕获的图像以 jpeg 格式保存到 Azure Blob 存储中 您可以通过 HTML 输入来实现此
  • 如何使用 CSS 或 Javascript 创建选取框

    我需要创建两个跨越任意大小的浏览器窗口的选取框 一个带有重复图像 一个带有重复链接 选框项目需要从一开始就显示出来 而不需要几秒钟的时间才能出现在屏幕上 并且每个项目之间的距离大约为 20px 30px 当用户将鼠标悬停在其上时 选取框需要
  • AVAudioRecorder 不会在设备上录制

    这是我的方法 void playOrRecord UIButton sender if playBool YES NSError error nil NSString filePath NSBundle mainBundle pathFor
  • 解决应用内购买缺少促销代码的问题

    Apple 不提供应用内购买的促销代码 让用户免费尝试通过应用内购买解锁的功能或内容 同时遵守 Apple 开发者指南的最佳方式是什么 这个想法是允许一组特殊的用户 评论者 主要粉丝等 无需付费即可访问作为应用内购买提供的内容或功能 解决此
  • 在 Android Activity 中设置全屏亮度

    我正在使用这种方法将屏幕设置为全亮度 SuppressLint NewApi private void setFullBright if Build VERSION SDK INT gt Build VERSION CODES CUPCAK
  • Rails 4:跳过回调

    我的应用程序中有一个拍卖和一个投标对象 当有人按下出价按钮然后它调用投标创建创建出价的控制器 然后对拍卖对象执行一些其他操作 投标控制器 gt 创建 auction endtime auction auctiontimer auction
  • NSMutableArray addObject 不起作用

    我已宣布NSMutableArray categories在我的视图控制器 h 文件中 并为其声明一个属性 In the parser foundCharacters 的方法NSXMLParser在我的 m 文件中 我有以下代码 void
  • 制作简单的 Google Android Maps API v2 项目时 Android Studio 中的编译错误

    最近我迁移到了新Android Studio 集成开发环境基于IntelliJ 我遵循的指南是 https developers google com maps documentation android start 为了 基本 如何在 A
  • Android In App Update 在立即模式下下载 APK 后不安装 APK

    应用程序正在使用立即模式来更新应用程序 它开始下载 APK 但下载 APK 后 它永远不会安装 UI 挂起并显示下载进度 100 立即模式下没有反馈下载已完成 即时模式如何实现app自动下载 安装 重启 我正在使用以下模式以立即模式开始更新
  • C - 可移植地获取类型对齐

    我正在为一种非常简单的语言编写非常小的解释器 它允许简单的结构定义 由其他结构和简单类型组成 如 int char float double 等 我希望字段使用尽可能少的对齐方式 因此使用 max align t 或类似的东西是不可能的 现
  • XHTML 和 &(与号)的编码

    我的网站符合 XHTML Transitional 标准除了一件事 URL 中的 与号 按原样编写 而不是 amp 也就是说 我的页面中的所有 URL 通常都是这样的 a href http www example org page asp
  • 最好使用游标适配器或数组适配器

    我在数据库中存储了大约 100 个时间表 需要根据每周 下周 下个月 逾期时间表等要求基于 Listview 显示它们 是否可以在应用程序启动时加载所有计划并根据用户在阵列适配器中选择的选项 每周 逾期 每月等 显示它们 或者在运行时使用查
  • 管理 .NET 应用程序在终止/终止时正常关闭

    我们有一个具有许多前台线程的 NET 控制台应用程序 如果我们使用任务管理器终止进程或从 Windows 命令行发出killjob kill 是否有一种方法可以优雅地关闭应用程序 在 net 控制台应用程序中添加托管代码 例如拥有一个函数被
  • ViewFlipper 与 Fragments

    我有一个带有 ViewFlipper 的 Activity 它可以在一堆视图 页面 和我的数据之间翻转 我正在考虑使用fragments API 在我的视图之间切换 这样做有什么好处呢 由于 ViewFlipper 本质上会切换可见性标志
  • 如何在Windows中最好地设置java的路径

    我很好奇我在 windows 环境中看到的 java 路径之间存在的差异 如果我执行一个命令where java我可以看到 C Program Files x86 Common Files Oracle Java javapath java
  • 检测用户触发的jquery事件或代码调用

    我有一些window onscroll event window scroll function e My Stuff 但在我的代码中我调用动画滚动到某个地方 html body stop animate scrollTop 555 100
  • 如何使用 jQuery 从元素获取边框半径?

    我有一个 div 包含以下 HTML 和 CSS 为了使我的 Javascript 代码更加健壮 我尝试从所选元素中检索某些 CSS 属性 我知道如何使用 css getter 来获取元素 但是如何使用该方法获取边框半径 jQuery 的文
  • iOS 8 TestFlight 不安装应用程序

    正如标题所说 我正在尝试预发布一个 ios8 应用程序 该应用程序已从存档成功上传并显示在预发布下 我按下提交测试版并添加内部测试用户 在 testflight 中 该应用程序出现 但是当我按安装时 它显示 无法安装应用程序 testfli
  • 使用 jQuery 以编程方式触发 IE 的 Javascript 事件

    当 IE 中的用户触发事件时 它被设置为window event目的 查看触发事件的唯一方法是访问window event对象 据我所知 如果以编程方式触发事件 例如通过 jQuery 触发事件 这会导致 ASP NET 验证器出现问题 在