1

我是 Dojo 的新手,我的 onChange() 事件有问题,它在页面加载时运行,而不是在选择框中的值更改时运行。这是我的代码,全部在页面的正文部分。谢谢你的帮助。

<div id="supportCentersListBox" data-dojo-type="dijit.form.Select"></div>

<script type="text/javascript">
    dojo.require("dojo.data.ItemFileReadStore");
    dojo.require("dijit.form.Select");      

    function populateSupportCenters() {
        var supportCenters = new dijit.form.Select({
        maxHeight:"300",
            id: "supportCenters",
            onChange: changeTest(),
            store: new dojo.data.ItemFileReadStore( { url: "some url address here" })
        }, 'supportCentersListBox');
    }

    function changeTest() {
        alert("Changed");
    }

    populateSupportCenters();
</script>
4

1 回答 1

1

修复您的代码,使 onChange 不是一个函数call,而是一个函数指针/引用

你有这个“问题”:

  1. <div id="supportCentersListBox" data-dojo-type="dijit.form.Select">DOM 渲染(data-dojo-type 仅用于 parseOnLoad (dojo.parser),不需要它,因为您自己创建它
  2. 你实例化一个商店
  3. 您实例化一个 Select 并在 supportCentersListBox 中呈现 - 使用storeset 获取url
  4. fetch完成并Select填写
  5. 具有属性selected:true或索引中第一个的项目被设置为值
  6. onChange火灾
于 2012-07-21T14:04:47.417 回答