Jquery DataTable—在ajax之前处理并禁用ajax的函数
我使用的是Jquery DataTable 1.10.15,这是我的数据表。我想检查用户点击每页时,该页的记录是否达到某个数量,如果达到了,我想弹出提示缩小搜索范围,而不是显示他们想要的页面,这意味着没有ajax调用/表加载。下面的代码对警报起作用,但当我返回false时,我认为它不会执行ajax调用,但它仍然会执行。有人知道怎么做吗Jquery DataTable—在ajax之前处理并禁用ajax的函数,jquery,datatables,Jquery,Datatables,我使用的是Jquery DataTable 1.10.15,这是我的数据表。我想检查用户点击每页时,该页的记录是否达到某个数量,如果达到了,我想弹出提示缩小搜索范围,而不是显示他们想要的页面,这意味着没有ajax调用/表加载。下面的代码对警报起作用,但当我返回false时,我认为它不会执行ajax调用,但它仍然会执行。有人知道怎么做吗 var myTable = $('#myTable') .on('preXhr.dt', function ( e, settings, data ) {
var myTable = $('#myTable')
.on('preXhr.dt', function ( e, settings, data ) {
if (data.start + data.length >=10000) {
alert('here');
return false;
}
})
.DataTable({
searching: true,
processing: false,
serverSide: true,
columns: columnsList,
pageLength: 25,
ajax: {
这就是你如何做到这一点:
$(document).ready(function () {
//added this variable
var stopAjaxing = false;
$('#example').on('preXhr.dt', function (e, settings, data) {
//changing to 100 since it works for rows, not pagges
if (data.start + data.length >= 100) {
//return false;
//moved message to callback
stopAjaxing = true;
}
})
.dataTable({
"preDrawCallback": function (settings) {
if (stopAjaxing) {
alert("You need to refine your search");
return false;
}
else {
return true;
}
},
...
您需要做的就是修改.on('preXhr.dt'..)并添加回调。您可以执行其他操作,如data.draw(false),但这将不兼容跨浏览器,而且是错误的。这对您有用吗?