From ee6f36525908519610e6ecc41f4f037c84529e7b Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 6 May 2016 15:37:18 +0500 Subject: [PATCH] add return result to sendBefore event, for example to custom query before send --- README.md | 5 +++-- kladr/js/kladr.js | 15 ++++++++++----- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 18eb14e..f8db1e5 100644 --- a/README.md +++ b/README.md @@ -98,8 +98,9 @@ jQuery Kladr *kladr_close_before* поля ввода. * **close** *= function () {}* - закрыт список объектов. Доступно как событие *kladr_close* поля ввода. -* **sendBefore** *= function (query) {}* - возникает перед отправкой запроса к сервису. -В параметре передаётся объект запроса. Доступно как событие *kladr_send_before* поля ввода. +* **sendBefore** *= function (query) { return query; }* - возникает перед отправкой запроса к сервису. +В параметре передаётся объект запроса. Возможно изменение объекта перед отправкой запроса. +Доступно как событие *kladr_send_before* поля ввода. * **send** *= function () {}* - отправлен запрос к сервису. Доступно как событие *kladr_send* поля ввода. * **receive** *= function () {}* - получен ответ от сервиса. Доступно как событие *kladr_receive* diff --git a/kladr/js/kladr.js b/kladr/js/kladr.js index 599f505..2876800 100644 --- a/kladr/js/kladr.js +++ b/kladr/js/kladr.js @@ -34,7 +34,9 @@ openBefore: null, // Вызывается перед открытием выпадающего списка closeBefore: null, // Вызывается перед закрытием выпадающего списка - sendBefore: null, // Вызывается перед отправкой запроса сервису + sendBefore: function (query) { // Вызывается перед отправкой запроса сервису + return query; + }, selectBefore: null, // Вызывается перед выбором объекта в списке checkBefore: null, // Вызывается перед проверкой введённого пользователем объекта @@ -726,7 +728,8 @@ var query = getQuery(name); - if (!trigger('send_before', query)) { + query = trigger('send_before', query); + if (!query) { close(); return; } @@ -908,7 +911,8 @@ query.withParents = false; query.limit = 10; - if (!trigger('send_before', query)) { + query = trigger('send_before', query); + if (!query) { ret(null, false); trigger('check', null); return; @@ -1005,7 +1009,8 @@ query.withParents = false; query.limit = 10; - if (!trigger('send_before', query)) { + query = trigger('send_before', query); + if (!query) { changeValue(null, query); return controller; } @@ -1171,7 +1176,7 @@ $input.trigger('kladr_' + event, obj); if ($.type(get(eventProp)) === 'function') { - return get(eventProp).call($input.get(0), obj) !== false; + return get(eventProp).call($input.get(0), obj); } return true;