From 77afd73ee1fafdd33496615abb3d4c65f5bbed09 Mon Sep 17 00:00:00 2001 From: Winston Chang Date: Tue, 6 Nov 2018 09:25:56 -0600 Subject: [PATCH] Use new selectize suffix. Fixes #2245 --- srcjs/input_binding_select.js | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/srcjs/input_binding_select.js b/srcjs/input_binding_select.js index 705bc29f5..97731a5db 100644 --- a/srcjs/input_binding_select.js +++ b/srcjs/input_binding_select.js @@ -22,10 +22,14 @@ $.extend(selectInputBinding, { return $(el).val(); }, setValue: function(el, value) { - var selectize = this._selectize(el); - if (typeof(selectize) !== 'undefined') { - selectize.setValue(value); - } else $(el).val(value); + if (!this._is_selectize(el)) { + $(el).val(value); + } else { + let selectize = this._selectize(el); + if (selectize) { + selectize.setValue(value); + } + } }, getState: function(el) { // Store options in an array of objects, each with with value and label @@ -119,8 +123,15 @@ $.extend(selectInputBinding, { this.setValue(el, data.value); } - if (data.hasOwnProperty('label')) - $(el).parent().parent().find('label[for="' + $escape(el.id) + '"]').text(data.label); + if (data.hasOwnProperty('label')) { + let escaped_id = $escape(el.id); + if (this._is_selectize(el)) { + escaped_id += "-selectized"; + } + $(el).parent().parent() + .find('label[for="' + escaped_id + '"]') + .text(data.label); + } $(el).trigger('change'); }, @@ -141,6 +152,11 @@ $.extend(selectInputBinding, { initialize: function(el) { this._selectize(el); }, + // Return true if it's a selectize input, false if it's a regular select input. + _is_selectize: function(el) { + var config = $(el).parent().find('script[data-for="' + $escape(el.id) + '"]'); + return (config.length > 0); + }, _selectize: function(el, update) { if (!$.fn.selectize) return undefined; var $el = $(el);