DataTable.如何阻止从事件处理程序内部激发search.dt事件



我有这段代码,当我检测到用户键入的筛选器包含一些坏字符(如')时,我不希望它到达服务器。

我有一个简化的代码:

$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...时已经广播,并且它不是可以取消搜索"上游"的链的一部分。

相反,你可以从一开始就阻止非法字符进入过滤框:

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/

相关内容

  • 没有找到相关文章

最新更新