dojo框架 - 事件不起作用

时间:2011-05-30 10:14:07

标签: javascript events dojo

我的代码有问题, 我想通过单击按钮发送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 个答案:

答案 0 :(得分:2)

我不知道道场,但这一行

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