yii2网格过滤器 - 忽略过滤器输入变化

时间:2016-11-23 01:08:44

标签: jquery gridview filter yii2

我在yii2 gridView中添加了一个范围过滤器,当您点击过滤器输入时,会显示一个类似于显示的弹出窗口。

enter image description here

popover的div位于td过滤单元格(position:absolute)内。

当我改变时,我改变了'来自'或者'到'值,它触发网格重新加载并从yii.gridView.js过滤。当我更改这些输入值时,如何避免网格过滤? IE浏览器。停止' applyFilter'从yii.gridView.js运行的功能?

侦听器似乎位于过滤器行内的输入上。

1 个答案:

答案 0 :(得分:0)

我最终必须绑定一个新的点击并'输入'监听器'到'从'和'到'过滤器输入,然后使用bindFirstyii.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());
  }
};