执行代码,发现在输入查询条件后点击查询,会发起请求查数据,但是在本次查完之后会再次执行页面加载后第一次查询的函数
<script type="text/javascript">
$(function(){
// 页面第一次打开调用查询函数,传参默认第一页,十条记录,无条件
// 这里的函数只希望在第一次加载页面的时候执行,但是当点击查询按钮,查询函数执行后会再次执行这里的函数
queryActivityConditionForPage(这里四个空的字符串(提交问题不让过-.-),1,10);
// 其他绑定单击事件函数代码
// 查询按钮绑定单击事件,点击查询收集数据,并调用函数执行查询
$("#queryActivitiesWithConditions").click(function (){
// 收集数据,验证数据合法
var name = $("#queryName").val();
var owner = $("#queryOwner").val();
var startDate = $("#queryStartDate").val();
var endDate = $("#queryEndDate").val();
if (startDate!=""&&endDate!=""){
if (endDate <= startDate){
alert("结束日期不能比开始日期小");
return;
}
}
queryActivityConditionForPage(name,owner,startDate,endDate,2,3);
alert('after')
// queryActivityConditionForPage(1,1,1,1,2,3);
// 发送请求
})
});
// 查询函数
function queryActivityConditionForPage(name,owner,startDate,endDate,pageNo,pageSize){
alert('method execute') // 这里弹窗显示函数被执行
$.ajax({
url: "workbench/activity/queryActivityConditionForPage.do",
type:"get",
data:{
"pageNo":pageNo,
"pageSize":pageSize,
"name":name,
"owner":owner,
"startDate":startDate,
"endDate":endDate
},
dataType: "json",
success:function (res){
$.each(res,function (index,element){
$("#activityList").append('<tr class="active">' +
'<td><input type="checkbox" /></td' +
'><td><a style="text-decoration: none; cursor: pointer;" >'+element.name+'</a></td>' +
'<td>'+element.owner+'</td><td>'+element.startDate+'</td><td>'+element.endDate+'</td></tr>')
})
}
})
}
</script>
debug 以及弹窗测试显示在用户点击输入查询条件点击查询按钮后
分别执行了两次 queryActivityConditionForPage 函数
第一次函数中的参数为用户输入的查询参数
第二次的函数执行的是 页面加载完之后的函数
queryActivityConditionForPage(这里四个空的字符串(提交问题不让过-.-),1,10); ,这行代码又执行了一次
原因没有找到,$(function(){} 这里的函数为什么会因为异步请求再次执行 ?
当页面加载后,执行一次无条件查询函数
queryActivityConditionForPage(这里四个空的字符串(提交问题不让过-.-),1,10);
当用户输入查询条件后点击查询按钮,执行queryActivityConditionForPage("name","owner","start","end",1,10);
已解决,是 button 的问题,button 属性为submit 给我重新提交了
<%-- <button type="submit" class="btn btn-default" id="queryActivitiesBtn">查询</button>--%>
<button type="button" class="btn btn-default" id="queryActivitiesBtn">查询</button>
你这里不是又调用了一次?
mark
说不上是哪里的问题,不过建议你queryActivityConditionForPage带条件查询从$(function(){}移出来,单独监听提交按钮