我试图自定义datatables搜索框,以更好地将其集成到基于Bootstrap的UI中。我有一个表控制栏“horicontal_group”,其中包含其他控件,我想把搜索框放在那里。就我所知,我可以生成过滤事件,但是有一个非常恼人的问题:每次调用过滤函数时,搜索框都会失去焦点。
这只是一种权宜之计,因为我想要自动完成功能,而不是让用户点击按钮进行搜索。当然,我还会实现按键和过滤事件之间的延迟,但首先我必须处理这个焦点问题。
这是使用datatable's sDom中默认的“f”选项时dom的外观:
这是我想要的样子:
这只是一种权宜之计,因为我想要自动完成功能,而不是让用户点击按钮进行搜索。当然,我还会实现按键和过滤事件之间的延迟,但首先我必须处理这个焦点问题。
这是使用datatable's sDom中默认的“f”选项时dom的外观:
这是我想要的样子:
wrapper_div.find('.dataTables_filter input')
.addClass('form-control tableview-search')
.appendTo(horicontal_group) //if this is uncommented, it works fine
.bind('keypress keyup', function(e){
datatable.fnFilter(searchTerm);
});
我已经尝试过以下方法,但对结果没有任何影响:
- 使用新创建的输入字段代替sDom参数“f”提供的字段(并从sDom中删除“f”)
- 在事件上使用stopPropagation()
- 在绑定新事件之前解除对输入字段的事件绑定
- 使用.on('input' ..)代替.bind('keypress keyup' ..)
- 将整个dataTables_filter div附加到horicontal_group而不仅仅是输入字段