Javascript:“onchange”事件不适用于“文本输入”对象中的“值”更改

Posted

技术标签:

【中文标题】Javascript:“onchange”事件不适用于“文本输入”对象中的“值”更改【英文标题】:Javascript: "onchange" event does not work with "value" change in "text input" object 【发布时间】:2011-10-13 04:36:54 【问题描述】:

我有一个带有type="text"javascript input 对象以及一个由(相关行)创建的onchange 事件:

var id_box = document.createElement('input');
id_box.id = 'id_box';
id_box.type = 'text';
id_box.onchange = function()

    alert("Changed!");

为了在这个input 字段中更改这个value,我使用:

var a = document.createElement('a');
a.innerhtml = "A";
a.onclick = function()

    document.getElementById('id_box').value = 'A';

onchange 事件仅适用于通过键盘输入更改值,但不适用于通过上述函数更改值。有什么办法可以做到吗?

请看这个:http://jsfiddle.net/zCMdV/7/

【问题讨论】:

【参考方案1】:

你用的是什么浏览器?

我已经做了这个例子,它对我有用...细微的变化是我将事件添加到输入中,然后将其附加到 div 元素。

<div id="test"></div>
<script type="text/javascript">
    var id_box = document.createElement('input');
    id_box.type = 'text';
    id_box.onchange = function()
    
        alert("Changed!");
    
    document.getElementById("test").appendChild(id_box);

</script>

在 JS Fiddle 上查看它的实际效果:http://jsfiddle.net/Sohnee/zCMdV/

更新:

如果您要自动更改值,您可以执行相同的操作来触发更改事件...

http://jsfiddle.net/Sohnee/zCMdV/10/

document.getElementById('id_box').onchange();

【讨论】:

我刚刚发现不是代码问题,而是在input字段中更改value的方法。请再次阅读我的问题。 我建议您删除答案中未回答的部分,因为它让我失望,而且很可能让其他人失望..

以上是关于Javascript:“onchange”事件不适用于“文本输入”对象中的“值”更改的主要内容,如果未能解决你的问题,请参考以下文章

Rails Javascript onchange 适用于 <script> 但不适用于外部

Javascript - innerHTML 不适用于 HTML 选择菜单

打字稿 onChange 事件类型

onchange事件如何将日期值传递给javascript

Javascript Html.Checkbox onchange 事件

Javascript:在onkeyup事件中更改值时不会触发onchange事件[重复]