我在yii2 gridView中添加了一个范围过滤器,当您点击过滤器输入时,会显示一个类似于显示的弹出窗口。
popover的div位于td
过滤单元格(position:absolute
)内。
当我改变时,我改变了'来自'或者'到'值,它触发网格重新加载并从yii.gridView.js
过滤。当我更改这些输入值时,如何避免网格过滤? IE浏览器。停止' applyFilter'从yii.gridView.js运行的功能?
侦听器似乎位于过滤器行内的输入上。
答案 0 :(得分:0)
我最终必须绑定一个新的点击并'输入'监听器'到'从'和'到'过滤器输入,然后使用bindFirst
在yii.gridView.js
之前绑定它返回false以阻止它传播。像这样:
/**
* Need to bind first to stop yii.gridView.js triggering filter change
*/
$filterInputs.bindFirst('change.yiiGridView keydown.yiiGridView', function() {
if (event.type === 'keydown') {
// enter button
if (event.keyCode == 13) {
$btn.trigger('click');
return false;
}
} else return false;
});
/**
* Bind to the front of the event listener queue
*/
$.fn.bindFirst = function(name, fn) {
var elem, handlers, i, _len;
this.bind(name, fn);
for (i = 0, _len = this.length; i < _len; i++) {
elem = this[i];
handlers = jQuery._data(elem).events[name.split('.')[0]];
handlers.unshift(handlers.pop());
}
};