我已经做了一些搜索,似乎无法在这里找到我的问题的解决方案。我需要捕获当用户单击X以清除jqGrid过滤器工具栏中的文本框输入时发生的事件。我正在使用free-jqGrid 4.13.1。
这是我用来设置过滤器工具栏的代码。这是一个全局方法,用于为项目中的所有jqGrids创建过滤器工具栏。
var bindTableFilterToolbar = function (table, selector) {
table.jqGrid('filterToolbar', {
defaultSearch: 'cn'
, ignoreCase: true
, stringResult: true
, searchOnEnter: false
, afterSearch: function () {
var filteredRows = $('#' + selector + ' tr').filter(':not(.jqgfirstrow)');
if (filteredRows.length === 1) {
table.jqGrid('setSelection', filteredRows[0].id);
}
}
, afterClear: function() {
alert('this does not trigger');
}
});
}
这是一个截图,准确显示我的意思。
对于此特定网格,datatype
设置为json,但URL
属性已设置,因此在AJAX请求之后,我知道它设置为local
。我使用loadonce: true
从服务器请求未经过滤的数据。
如何为用户单击X以清除文本框而绑定事件?我已经尝试添加afterClear
处理程序,但是在单击X时似乎没有触发。查看on the trirand wiki for toolbar searching之后我认为afterClear
用于清除整个工具栏,是不我需要的东西。