Ваш пример помогает найти множество мелких ошибок в разных частях jqGrid. Так что +1 к твоей репутации от меня. После исправления example1 и example2 , который я подготовил для демонстрации проблемы, работают без проблем.
Я постараюсь опубликовать сегодня или завтра ошибку (с исправлениями), которую я нашел в форуме trirand . Краткая информация для вас: я сделал небольшие исправления в grid.custom.js, grid.base.js, jquery.searchFilter.js и grid.formedit.js (см. * -Fixed.js файлы в демоверсии). Основное исправление в grid.custom.js: строки 575, 642
ruleGroup += "\"data\":\"" + n + "\"}";
следует заменить на
ruleGroup += "\"data\":\"" + n.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}";
и в grid.base.js строка 203
phrase=phrase.toString().replace(new RegExp('\\"',"g"),'\\"');
следует заменить на
phrase=phrase.toString().replace(/\\/g,'\\\\').replace(/\"/g,'\\"');
Исправления в jquery.searchFilter.js и grid.formedit.js необходимы в случае, если объединить фильтрацию данных в «многопользовательском стиле» (filterToolbar
с опцией stringResult: true
) с одиночным полем поиск .
ОБНОВЛЕНО: как я и обещал до того, как только что опубликовал отчет об ошибке со всеми своими исправлениями здесь . Я надеюсь, что Тони (разработчик jqGrid) прочтет его и включит исправления в следующую версию jqGrid.