Javascript: событие «onchange» не работает с изменением «value» в объекте «text input» - PullRequest
14 голосов
/ 26 июля 2011

У меня есть объект 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 в этом *Поле 1008 *, которое я использую:

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

Событие onchange работает только при изменении значения при вводе с клавиатуры, но не при изменении значения по вышеуказанной функции.Есть ли способ сделать это работает?

Пожалуйста, посмотрите на это: http://jsfiddle.net/zCMdV/7/

1 Ответ

9 голосов
/ 26 июля 2011

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

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