2016-11-23 159 views
0

我在yii2 gridView中添加了一個範圍過濾器,當你點擊過濾器輸入時,顯示一個彈出窗口,如圖所示。yii2網格過濾器 - 忽略過濾器輸入變化

enter image description here

爲酥料餅的DIV是td過濾器單元(position:absolute)的內部。

當我改變'我'更改'從'或'到'值,它會觸發網格重新加載和從yii.gridView.js篩選。當我更改這些輸入值時,如何避免網格過濾? IE瀏覽器。停止運行yii.gridView.js中的'applyFilter'函數?

偵聽器似乎位於篩選器行內的輸入上。

回答

0

我最終不得不綁定一個新的點擊並將'輸入'監聽器綁定到'from'和'to'過濾器輸入,然後使用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()); 
    } 
};