我正在使用 Dojo 1.9。我有一个包含两个选择的表单(一个用于销售代表,一个用于客户),都带有 onchange 事件。更改第一个选择会导致第二个选择的选项发生更改(它通过 php 脚本重新加载),这可以正常工作,但随后第二个选择的 onchange 事件将不再触发(更改时)。如果我只更改第二个,我不会先更改第一个,它的 onchange 会正常工作。当新的选择被加载时,我第一次挂断它不是一个小部件,添加 .destroy() 和 dojo.parser.parse 修复了这个问题。下面是两个 select 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.";
}
});
});