Dojo更新选择不再触发onchange事件

时间:2013-09-16 21:02:45

标签: javascript dojo

我正在使用Dojo 1.9。我有一个有两个选择的表单(一个用于salesreps,一个用于客户),两个都有onchange事件。更改第一个选择会导致第二个选择的选项发生变化(通过php脚本重新加载),它可以正常工作,但第二个选择的onchange事件不再会触发(更改时)。如果我只改变第二个,我不会先改变第一个,它的onchange就可以了。我第一次加载新的选择加载它不是一个小部件,添加.destroy()和dojo.parser.parse修复​​了。下面是两个选择onchange事件的代码,无法弄清楚我做错了什么。也许有一种更好的方法来重新加载第二个选择而不是完全用xhr.get替换它?

                    on(registry.byId("salesperson"),"change", function(event) {
                        var resultNode = dom.byId("customer_select_tr");
                        xhr.get({
                            url: "customer_select.php",
                            content: {
                                salesperson_num: dijit.byId("salesperson").get('value')
                                },
                            load: function(newContent) {
                                digit.byId("goal_customer_num").destroy();
                                resultNode.style.display = "block";
                                resultNode.innerHTML = newContent;
                                dojo.parser.parse(dom.byId('customer_select_tr'));
                            },
                            // The error handler
                            error: function() {
                                resultNode.innerHTML = "Your form could not be sent.";
                            }
                        });
                });

                on(digit.byId("goal_customer_num"),"change", function(event) {
                        var resultNode = dom.byId("tab2");
                        dijit.byId("tab2").set("title", "Customer Info55");
                        console.log(digit.byId("goal_customer_num").value);
                        xhr.get({
                            url: "customer_info.php",
                            content: {
                                customer_num: digit.byId("goal_customer_num").value
                                },
                            load: function(newContent) {
                                resultNode.style.display = "block";
                                resultNode.innerHTML = newContent;
                            },
                            error: function() {
                                resultNode.innerHTML = "Your form could not be sent.";
                            }
                        });
                });

0 个答案:

没有答案