我有这个代码,当我检测到用户输入的过滤器包含一些不好的字符,如'
我不希望它到达服务器。
我有这个简化的代码
$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 charakters
}
});
答案 0 :(得分:2)
此时无法阻止执行搜索。 search.dt
已在您$table.on('search.dt' listener...
被执行时播放,并且它不是您可以取消搜索“上游”的链的一部分。
相反,您可以首先防止在过滤器框中输入非法字符:
var illegalChars = "',.-*)(";
$('.dataTables_filter input').on('keypress', function(e) {
if (~illegalChars.indexOf(String.fromCharCode(e.keyCode))) {
console.log('Illegal char entered, aborting');
return false;
}
})
演示 - >的 http://jsfiddle.net/q39c3c0k/ 强>