我面临的问题是:
- 我有一个日期范围文本框和一个日历控件。
- 当用户从日历中选择一个日期时,它会将该日期填充到文本框中
- 发生这种情况时,我想触发一个 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/