Dojo отправляет посторонние Ajax-запросы от несвязанных / несвязанных элементов управления - PullRequest
0 голосов
/ 12 ноября 2011

У меня странное поведение с флажками на странице Dojo. В приведенном ниже коде я создал форму поиска, которая делает запрос Ajax / xhrGet при изменении текста поиска - все это работает, как и ожидалось.

Однако у меня также есть флажок на той же странице, который при нажатии также отправляет запрос Ajax. Поскольку я не подключил флажок к поиску, я понятия не имею, почему это происходит.

Это ошибка или здесь происходит что-то более тонкое?

Есть идеи / предложения?

ТИА, BrendanC

<script type="text/javascript">
        dojo.require("dijit.layout.ContentPane");
        dojo.require("dijit.layout.BorderContainer");
        dojo.require("dijit.form.TextBox");
        dojo.require("dijit.form.CheckBox");
        dojo.require("dijit.Tooltip");
</script>

        <div dojoType="dijit.layout.ContentPane" splitter="false" region="trailing" 
        style="width: 200px;">
            <script type="text/javascript"> var srch = dojo.byId ("djsearch"); dojo.connect(srch, "onchange", "getbyname"); </script>              
          Search              
          <input dojoType="dijit.form.TextBox" name="dojosearch" value="Find" 
          trim="true" id="djsearch" propercase="true" style="width: 6em">

          <p></p>
          Tag Summary
          <div id='tagsummary'></div>

        </div>

1 Ответ

0 голосов
/ 15 ноября 2011

Я нашел причину своей проблемы.Надеюсь, это поможет кому-то еще в будущем.

В принципе, я не правильно выполнил dojo.connect - это нужно сделать внутри обработчика addOnLoad.В моем исходном коде я отправлял запрос на подключение на странице, но не в необходимом обработчике addOnLoad.Следующий код работает правильно.

Надеюсь, это поможет кому-то еще в будущем.

<script> 
  // Add the dojo.connect below     
  dojo.addOnLoad(function() {
        // Connection s/b in 'addOnLoad' to work correctly
        var srch = dojo.byId ("djsearch");    
        dojo.connect(srch, "onchange", "getbyname");            
    });    
</script>  
...