0

Dojo 1.9 を使用しています。2 つの選択項目 (営業担当者用と顧客用) を持つフォームがあり、どちらも onchange イベントがあります。最初の選択を変更すると、2 番目の選択のオプションが変更され (php スクリプトを介して再ロードされます)、正常に機能しますが、2 番目の選択の onchange イベントはトリガーされなくなります (変更された場合)。2 番目のものだけを変更する場合、最初のものは最初に変更しません。その onchange は正常に機能します。新しい選択がロードされたときに最初にハングアップしました。これはウィジェットではなく、.destroy() を追加し、dojo.parser.parse を修正しました。以下は、2 つの select onchange イベントのコードです。何が間違っているのかわかりません。xhr.get で完全に置き換えるよりも、2 番目の選択をリロードするためのより良い方法があるのではないでしょうか?

                    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.";
                            }
                        });
                });
4

0 に答える 0