javascript - 通过以编程方式更改文本框值来调用 Javascript onchange 事件

标签 javascript textbox onchange

我面临的问题是:

  • 我有一个日期范围文本框和一个日历控件。
  • 当用户从日历中选择一个日期时,它会将该日期填充到文本框中
  • 发生这种情况时,我想触发一个 javascript 函数,但是,“onchange”事件似乎没有发生。

理想情况下,我希望能够将事件作为属性添加到文本框,例如:

txtCreateDate.Attributes.Add("onchange", string.Format("JSfunction({0},'{1}');", arg1, arg2));

更多信息: 日期在 c# 中输入到文本框中。日历控件在页面上有一个事件处理程序。选择日期后,事件处理程序会将日期放入文本框中。此时我已经尝试将焦点设置到文本框,然后在文本框上放置一个 onBlur 属性,但文本框似乎永远不会获得焦点。

我想此时我可以直接调用 javascript 函数来执行 ClientScript.RegisterClientScriptBlock 或类似的东西,但这看起来很草率,而且永远不会像我想要的那样工作。

最佳答案

这是一个老问题,我不确定它是否有帮助,但我已经能够使用以下方法以编程方式触发事件:

if (document.createEvent && ctrl.dispatchEvent) {
    var evt = document.createEvent("HTMLEvents");
    evt.initEvent("change", true, true);
    ctrl.dispatchEvent(evt); // for DOM-compliant browsers
} else if (ctrl.fireEvent) {
    ctrl.fireEvent("onchange"); // for IE
}

关于javascript - 通过以编程方式更改文本框值来调用 Javascript onchange 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/735462/

相关文章:

php - 从文本框中的逗号分隔文本在 MYSQL 中添加新行

javascript - 在 Vue 中恢复对数组的更改

javascript - 类型 'url' 上不存在属性类型 'Event'

jquery - 在 JQuery 中输入时将 INPUT 附加到 TEXTAREA

c# - 用数据库中的数据填充文本框

jquery - 如何更改 jquery 范围内的填充

javascript - 当输入值以编程方式更改时如何触发 JQuery 更改事件?

javascript - 如何在 <input type ="text"> 字段上使用 onFocus、onChange 和 onClick 事件

javascript - Javascript 中的简单平均

javascript - 如何回发并在悬停时显示 div 并从数据库获取信息