mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-17 21:42:14 +00:00
1 line
1.4 KiB
JavaScript
1 line
1.4 KiB
JavaScript
jQuery(function(s){s.widget("custom.combobox",{_create:function(){this.wrapper=s("<span>").addClass("custom-combobox").insertAfter(this.element),this.element.hide(),this._createAutocomplete()},_createAutocomplete:function(){var t=this.element.children(":selected"),e=t.val()?t.text():"";this.input=s("<input>").appendTo(this.wrapper).val(e).attr("title","").addClass("form-control").autocomplete({delay:0,minLength:3,source:s.proxy(this,"_source")}).tooltip({tooltipClass:"ui-state-highlight"}),this._on(this.input,{autocompleteselect:function(t,e){e.item.option.selected=!0,this._trigger("select",t,{item:e.item.option})},autocompletechange:"_removeIfInvalid"})},_source:function(e,t){var i=new RegExp(s.ui.autocomplete.escapeRegex(e.term),"i");t(this.element.children("option").map(function(){var t=s(this).text();if(this.value&&(!e.term||i.test(t)))return{label:t,value:t,option:this}}))},_removeIfInvalid:function(t,e){if(!e.item){var i=this.input.val(),o=i.toLowerCase(),n=!1;this.element.children("option").each(function(){if(s(this).text().toLowerCase()===o)return this.selected=n=!0,!1}),n||(this.input.val("").attr("title",i+" didn't match any item").tooltip("open"),this.element.val(""),this._delay(function(){this.input.tooltip("close").attr("title","")},25e3),this.input.data("ui-autocomplete").term="")}},_destroy:function(){this.wrapper.remove(),this.element.show()}})}); |