каркас додзё - событие не работает - PullRequest
0 голосов
/ 30 мая 2011

У меня проблема с кодом, я хочу отправить запрос ajax, нажав кнопку, но запрос запускается автоматически, даже если я не нажимаю кнопку, вот мой код:

<script type="text/javascript">

 function set(mode) {

    var nomor_awal = dojo.query("input[name=nomor_awal]");
    var nomor_akhir = dojo.query("input[name=nomor_akhir]");

    var validGetUrl = "";

    validGetUrl += "nomor_awal="+objNomorAwal.attr("value")+"&";
    validGetUrl += "nomor_akhir="+objNomorAkhir.attr("value");

    dojo.xhrPost({
        url:"<?php echo base_url(); ?>register_perkara/pidana_biasa/"+mode+"/",
        content:{
            filter:validGetUrl
        },
        load:function(response){
            (response!="1")? document.location = window.location: null;
        }
    });
 }

 dojo.ready(function(){
    dojo.connect(dojo.query("input[name=filter]"), "onclick", set("set_filter"));
 }

</script>



<table>
 <tr>
  <td><label for="nomor_awal">Nomor awal</label></td>
  <td><input type="text" name="nomor_awal" size="8" value="" /></td>
 </tr>
 <tr>
  <td><label for="nomor_akhir">Nomor akhir</label></td>
  <td><input type="text" name="nomor_akhir" size="8" value="" /></td>
 </tr>
 <tr>
  <td colspan="2"><input type="button" name="filter" /></td>
 </tr>
</table>

Я не нажимаю кнопку фильтра, но функция выполняется автоматически, почему?

1 Ответ

2 голосов
/ 30 мая 2011

Я не знаю додзе, но эта строка

dojo.connect(dojo.query("input[name=filter]"), "onclick", set("set_filter"));

выполняет функцию set и передает возвращаемое значение в dojo.connect.

Вы должны передать функцию, а не вызывать ее. Так что я совершенно уверен, что вы хотите:

dojo.connect(dojo.query("input[name=filter]"), "onclick", function() {
    set("set_filter");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...