当前位置: 首页 > 面试题库 >

JavaScript如何手动触发onchange事件?

蒋鹏鹍
2023-03-14
问题内容

我正在通过日历窗口小部件设置日期时间文本字段值。显然,日历小部件会执行以下操作:

document.getElementById('datetimetext').value = date_value;

我想要的是:在更改日期时间文本字段中的值时,我需要重置页面中的其他一些字段。我已经将一个onchange事件侦听器添加到了不会被触发的datetimetext字段中,因为我猜onchange只有在元素获得焦点并且其值更改为失去焦点时才会被触发。

因此,我正在寻找一种手动触发此onchange事件的方法(我认为应该注意检查文本字段中的值差异)。

有任何想法吗 ?


问题答案:

有两种方法可以做到这一点。如果onchange侦听器是通过该element.onchange属性设置的函数,并且您对事件对象或冒泡/传播不感到烦恼,则最简单的方法是仅调用该函数:

element.onchange();

如果需要它来完全模拟真实事件,或者通过html属性或addEventListener/设置事件attachEvent,则需要进行一些功能检测以正确触发事件:

if ("createEvent" in document) {
    var evt = document.createEvent("HTMLEvents");
    evt.initEvent("change", false, true);
    element.dispatchEvent(evt);
}
else
    element.fireEvent("onchange");


 类似资料:
  • 本文向大家介绍如何在javascript中手动触发onchange事件?,包括了如何在javascript中手动触发onchange事件?的使用技巧和注意事项,需要的朋友参考一下 您可以使用dispatchEvent方法在单个元素上调度事件。假设您有一个带有onChange事件的元素测试- 事件处理程序- 手动触发事件- 这将记录以下内容-

  • 我尝试用dart构建一个应用程序。我在另外两个中注入了一个服务类来共享一些数据。现在的问题是,我不知道如何通过另一个类属性改变(async)来触发一个类中的事件(onChange)。

  • 问题内容: 如何在 ReactJS中 手动触发click事件?当用户单击element1时,我想自动触发对标签的单击。 问题答案: 您可以使用该道具通过回调获取对基础HTMLInputElement对象的引用,将该引用存储为类属性,然后使用该引用稍后使用HTMLElement.click方法触发事件处理程序中的单击。 在您的方法中: 在事件处理程序中: 完整示例: 请注意 ES6箭头函数,该函数为

  • 问题内容: 我的页面上有一个超链接。我正在尝试自动执行对超链接的多次单击,以进行测试。有什么方法可以使用JavaScript模拟超链接的50次点击? 我正在寻找JavaScript中的onClick事件触发器。 问题答案: 单击HTML元素: 只需执行。大多数主流浏览器都支持此功能。 要多次重复单击: 将ID添加到元素以唯一地选择它: 并通过for循环在JavaScript代码中调用该方法:

  • 问题内容: 我已使用将事件附加到文本框。它工作正常。当我想通过另一个函数以编程方式触发事件时,出现了我的问题。 我该怎么做? 问题答案: 您可以在IE 8或更低版本上使用fireEvent,在大多数。要创建您要触发的事件,可以使用或取决于浏览器。 这是一段不言自明的代码(来自原型),它在上触发事件:

  • 问题内容: 这是我第一次需要使用SqlDependency,所以我希望它是我犯的一个愚蠢的错误。 我遇到的问题是,当SQL表更改时,不会触发OnChanged事件。没有错误或其他任何东西不会触发。 这是代码 在我的主窗口中 因此,预期的行为是,如果我运行以下sqlQuery,将显示一个messageBox,显示“收到消息” 谁能给我提示要检查/更改的内容吗? 我知道在依赖项中只能使用Sql功能的一