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

时间:2011-07-26 07:32:08

标签: javascript-events

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

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

要更改此value字段中的input,请使用:

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

onchange事件仅通过键盘输入改变值,但不能通过上面的函数改变值。有什么方法可以使它有效吗?

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

1 个答案:

答案 0 :(得分: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>

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

<强>更新

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

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

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