我的代码有问题, 我想通过单击按钮发送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>
我没有点击过滤器按钮,但是该功能是自动执行的,为什么?
答案 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");
});