如何以编程方式更改选择以激活其onchange行为?

spr*_*man 6 javascript select onchange

这似乎不起作用:

<select id="mySel" onchange="alert('foo')">
    <option value="a">a</option>
    <option value="b">b</option>
</select>

<script>
dojo.byId('mySel').value = 'b'; // select changes, but nothing is alerted
</script>
Run Code Online (Sandbox Code Playgroud)

(我正在使用道场,但这并不重要.)

Mer*_*son 6

"onchange"名称有点误导,除非您了解更改事件和更改的值不同.当用户更改浏览器中的值时,会发生更改事件.我相信您可以在以dojo.byId('mySel').onchange()编程方式更改值后通过调用手动触发事件.(你可能需要实际定义一个调用的函数alert.我自己没有这样做.)