Javascript:"onchange"事件不能与"文本输入"对象中的"值"更改一起使用

Pro*_*ole 14 javascript-events

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

var id_box = document.createElement('input');
id_box.id = 'id_box';
id_box.type = 'text';
id_box.onchange = function()
{
    alert("Changed!");
}
Run Code Online (Sandbox Code Playgroud)

value在此input字段中更改此内容,我使用:

var a = document.createElement('a');
a.innerHTML = "A";
a.onclick = function()
{
    document.getElementById('id_box').value = 'A';
}
Run Code Online (Sandbox Code Playgroud)

onchange事件仅通过键盘输入改变值,但不能通过上述功能改变值.有没有办法使这个工作?

请看一下:http://jsfiddle.net/zCMdV/7/

Fen*_*ton 9

你使用的是什么浏览器?

我做了这个例子,对我有用......微妙的变化是我在将它附加到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>
Run Code Online (Sandbox Code Playgroud)

在JS Fiddle上看到它:http://jsfiddle.net/Sohnee/zCMdV/

更新:

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

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

document.getElementById('id_box').onchange();
Run Code Online (Sandbox Code Playgroud)

  • 我刚刚发现它不是代码问题,而是改变`input`字段中`value`的方法.请再次阅读我的问题. (2认同)