开发者

The "onchange" event does not work with "value" change in "text input" object

I have a JavaScript input object with type="text" coming along with an onchange event which is created by (related lines):

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

For changing this value in this input field I use:

var a = document.createElement('a');
a.innerHTML = "A";
a.oncl开发者_如何学运维ick = function()
{
    document.getElementById('id_box').value = 'A';
}

The onchange event works only changing value by keyboard typing but not for changing value by above function. Is there any way to make this works?

Please take a look at this: http://jsfiddle.net/zCMdV/7/


What browser are you using?

I have made this example, which works for me... the subtle change is that I add the event to the input before I append it to the div element.

<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>

See it in action on JS Fiddle: http://jsfiddle.net/Sohnee/zCMdV/

Update:

If you are going to automate the changing of the value, you can do the same to trigger the change event...

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

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜