From decca080babcdc50dba6033510131f101be72373 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Fri, 9 Dec 2016 01:51:31 +0000 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BB=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8C=20?= =?UTF-8?q?=D0=B6=D0=B8=D0=B2=D0=BE=D0=B3=D0=BE=20=D0=BF=D0=BE=D0=B8=D1=81?= =?UTF-8?q?=D0=BA=D0=B0,=20=D1=82.=D0=BA.=20bootstrap-select=20=D0=B2?= =?UTF-8?q?=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=20=D0=BD=D0=B5=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=B4=D0=BE=D1=88=D1=91=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- static/js/my.js | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/static/js/my.js b/static/js/my.js index 6573ed5..f97b2f5 100644 --- a/static/js/my.js +++ b/static/js/my.js @@ -23,6 +23,54 @@ $(document).ajaxError(function (ev, jqXHR, ajaxSettings, thrownError) { }); +// SelectAjax +(function ($) { + $.fn.selectajax = function (opt) { + + var settings = $.extend( { + url : '/api' + }, opt); + + var selectbtn = this.children('button.selectajax-btn'); + var selectinp = this.children('input[type=text].selectajax-inp'); + var selecthid = this.children('input[type=hidden].selectajax-hid'); + var selectul = this.children('ul.selectajax-ul'); + + var selectajax_click = function(){ + var a = $(this).children('a'); + var hr = a.attr('href'); + var tx = a.text(); + selecthid.val(hr.substr(1)); + console.debug(tx); + selectbtn.text(tx).removeClass('hidden'); + selectinp.addClass('hidden').val(tx); + }; + + var refresh = function(){ + $.getJSON(settings.url, {'s': this.value}, function (r) { + selectul.empty(); + r.forEach(function (o) { + var li = $('
  • ' + o.fio + '
  • '); + selectul.append(li); + li.on('click', selectajax_click) + }); + }); + }; + + selectinp.on('keyup', refresh).on('focusin',refresh); + + selectbtn.on('click',function(){ + selectinp.removeClass('hidden'); + $(this).addClass('hidden'); + selectinp.focus().trigger('click.bs.dropdown'); + return false; + }); + + selectul.children().on('click', selectajax_click); + }; +})(jQuery); + + $(document).ready(function () { // ajax tabs @@ -62,7 +110,11 @@ $(document).ready(function () { pr.addClass('has-error'); $(this).after(''); } + }); + + $('div.selectajax').selectajax({ + url: '/abons/api/abon_filter' }); });