数据表。如何阻止从事件处理程序内部触发 search.dt 事件
DataTable. How to stop a search.dt event from being fired from inside the event handler
我有这段代码,当我检测到用户输入的过滤器包含一些错误字符时,例如 '
我不希望它到达服务器。
我有这个简化的代码:
$table.on('search.dt', function () {
var value = getValue();
if (antiHackingHelper.isValid(value)) {
} else { // Contains charakter like "'" so don't call the server with this bad filter
// Don't send the request to the server with a filter with bad characters
}
});
此时您无法阻止执行搜索。 search.dt
是 在您的 $table.on('search.dt' listener...
执行时已经广播,并且它不是您可以取消搜索 "upstream" 的链的一部分。
相反,您可以首先防止在过滤器框中输入非法字符:
var illegalChars = "',.-*)(";
$('.dataTables_filter input').on('keypress', function(e) {
if (~illegalChars.indexOf(String.fromCharCode(e.keyCode))) {
console.log('Illegal char entered, aborting');
return false;
}
})
我有这段代码,当我检测到用户输入的过滤器包含一些错误字符时,例如 '
我不希望它到达服务器。
我有这个简化的代码:
$table.on('search.dt', function () {
var value = getValue();
if (antiHackingHelper.isValid(value)) {
} else { // Contains charakter like "'" so don't call the server with this bad filter
// Don't send the request to the server with a filter with bad characters
}
});
此时您无法阻止执行搜索。 search.dt
是 在您的 $table.on('search.dt' listener...
执行时已经广播,并且它不是您可以取消搜索 "upstream" 的链的一部分。
相反,您可以首先防止在过滤器框中输入非法字符:
var illegalChars = "',.-*)(";
$('.dataTables_filter input').on('keypress', function(e) {
if (~illegalChars.indexOf(String.fromCharCode(e.keyCode))) {
console.log('Illegal char entered, aborting');
return false;
}
})