Javascript: событие "onchange" не работает со значением "value" в объекте "text input"

У меня есть объект 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!");
}

Для изменения этого 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

Какой браузер вы используете?

Я сделал этот пример, который работает для меня... тонкое изменение заключается в том, что я добавляю событие во вход, прежде чем присоединять его к элементу 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/

Update:

Если вы собираетесь автоматизировать изменение значения, вы можете сделать то же самое, чтобы вызвать событие изменения...

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

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