如何使datepicker onselect函数在jqgrid中的工具栏搜索和高级搜索中的工作方式不同

我希望onselect事件只能在toolfilter而不是高级搜索中完成他的工作。

这是我的网格:

$('#grid').jqGrid({ colNames: ['Title', 'date'], colModel: [ { name: 'Title', index: 'Title', searchoptions: { sopt: ['cn']} }, { name: 'date', index: 'date', search: true, searchoptions: { sopt: ['deq', 'dge', 'dlt'], dataInit: function (el) { $(el).datepicker({ onSelect: function (dateText, inst) { $("#grid")[0].triggerToolbar(); } }); } }, width: 70 } ], pager: jQuery('#pager'), hidegrid: false, sortname: "date", sortorder: "desc", rowNum: 20, rowList: [10, 20, 50, 100], autowidth: true, width: "100%", height: "100%", datatype: 'json', viewrecords: true, mtype: 'POST', url: '' }) 

提前致谢

例如,您可以使用以下事实:搜索工具栏中的元素id将使用"gs_"前缀进行修改。 因此,实施可能是以下几点

 dataInit: function (elem) { $(elem).datepicker({ changeYear: true, changeMonth: true, showButtonPanel: true, onSelect: function () { var $grid, grid; if (typeof (elem.id) === "string" && this.id.substr(0, 3) === "gs_") { // in case of searching toolbar $grid = $(elem).closest('div.ui-jqgrid-hdiv') .next('div.ui-jqgrid-bdiv') .find("table.ui-jqgrid-btable:first"); if ($grid.length > 0) { grid = $grid[0]; if ($.isFunction(grid.triggerToolbar)) { setTimeout(function(){ grid.triggerToolbar(); }, 50); } } } else { // refresh the filter in case of // searching dialog $(this).trigger('change'); } } }); } 

用非常接近的代码看答案 。