首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >以编程方式更新时不调用HTML JavaScript onChange处理程序

以编程方式更新时不调用HTML JavaScript onChange处理程序
EN

Stack Overflow用户
提问于 2010-10-28 16:30:18
回答 5查看 17.8K关注 0票数 7

我在HTML文本框和JavaScript上发现了一个奇怪的反常现象,我已经把范围缩小到html/javascript特有的地方,我希望有人能告诉我这一点。

我已经下载并实现了一个日历插件,它创建一个简单的带有日历的层,并在选择时将所选日期传递回文本框。

我想要做的是在文本框发生变化时捕获(使用onchange),然后调用Ajax函数来更新数据库……

问题是,onchange永远不会被调用...我已经能够用下面这段非常简单的代码来证明这一点。当按钮被点击时,它会改变值,然后触发onchange并显示一个警告框……

代码语言:javascript
复制
<input type="button" name="setValue" id="setValue" value="setValue" onClick="document.getElementById('textinput').value='Updated'">&nbsp;
<input type="button" name="clearValue" id="clearValue" value="clearValue" onClick="document.getElementById('textinput').value=''"><br>
<input type="text" name="textinput" id="textinput" onChange="alert(this.name)">

这是标准吗?有解决办法吗?

EN

回答 5

Stack Overflow用户

发布于 2010-10-28 16:35:34

onchange事件不是由textinput的值的编程更改触发的。您必须在自己更改值之后调用要执行的代码。

票数 4
EN

Stack Overflow用户

发布于 2011-05-12 21:03:39

textboxes和textarea元素上的onchange事件仅在元素失去焦点时触发,并且在获得焦点时它的值现在不是它的值。

票数 4
EN

Stack Overflow用户

发布于 2018-06-20 04:59:21

这是一个非常古老的帖子,答案可以在其他地方找到,但我想我应该把它贴在这里,因为我通过研究找到了它。

可以通过以下几种方式以编程方式调用元素的onChange调用:

代码语言:javascript
复制
document.getElementById("elementID").onchange();

代码语言:javascript
复制
var element = document.getElementById('elementID');
var event = new Event('change');
element.dispatchEvent(event);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4041048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档