2016-01-18 2 views
2

Мы используем jQrid версию 3.8.1. Свойство keys имеет значение true, поэтому пользователь может сэкономить, нажав на клавишу Enter. Есть ли способ запустить javascript-функцию после того, как пользователь набрал Enter, но до того, как произойдет сбой? Нам нужно выполнить некоторую проверку и, возможно, попросить пользователя, чтобы у сохранения были определенные побочные эффекты.jqGrid введите ключевой обработчик

+0

Вы должны обновить ретро-версию 3.8.1 до [free jqGrid] (https://github.com/free-jqgrid/jqGrid) 4.12.1, который я опубликовал сегодня. Более поздняя версия jqGrid имеет обратный вызов 'beforeSaveRow', который вы можете использовать, например. Кроме того, существует стандартная возможность проверки ('editrules'), которую вы можете использовать для проверки. В качестве альтернативы вы не можете использовать 'keys: true' и связывать свою собственную функцию' keydown' внутри 'oneditfunc'. – Oleg

+0

Благодаря @Oleg, к сожалению, обновление jgGrid на данный момент не является вариантом. Но решение о добавлении обработчика keydown на oneditfunc прямо на деньги. Большое спасибо! Если вы хотите сказать это в ответе на этот вопрос, я буду рад дать вам очки. В противном случае я создам свой собственный ответ. – d512

+0

Добро пожаловать! – Oleg

ответ

1

Вы не можете использовать keys: true и связывать свой пользовательский keydown функцией внутри oneditfunc. Here вы можете видеть, что делает jqGrid в случае использования keys: true. Вы можете реализовать близкие вещи, но вы должны использовать код закрытия, который вы найдете в grid.inlinedit.js из 3.8.1. Это в основном то же самое, но с использованием длинной формы (без объектной формы) параметров saveRow (.jqGrid("saveRow", rowid, succesfunc, url, extraparam, aftersavefunc, errorfunc, afterrestorefunc);)