chosen.jquery 选择插件查询修改为like方式

chosen.jquery.js
将this.search_contains = this.options.search_contains 修改为this.search_contains = true
chosen.jquery.js修改后代码

(function() {var $, AbstractChosen, Chosen, SelectParser, _ref,__hasProp = {}.hasOwnProperty,__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };SelectParser = (function() {function SelectParser() {this.options_index = 0;this.parsed = [];}SelectParser.prototype.add_node = function(child) {if (child.nodeName.toUpperCase() === "OPTGROUP") {return this.add_group(child);} else {return this.add_option(child);}};SelectParser.prototype.add_group = function(group) {var group_position, option, _i, _len, _ref, _results;group_position = this.parsed.length;this.parsed.push({array_index: group_position,group: true,label: this.escapeExpression(group.label),title: group.title ? group.title : void 0,children: 0,disabled: group.disabled,classes: group.className});_ref = group.childNodes;_results = [];for (_i = 0, _len = _ref.length; _i < _len; _i++) {option = _ref[_i];_results.push(this.add_option(option, group_position, group.disabled));}return _results;};SelectParser.prototype.add_option = function(option, group_position, group_disabled) {if (option.nodeName.toUpperCase() === "OPTION") {if (option.text !== "") {if (group_position != null) {this.parsed[group_position].children += 1;}this.parsed.push({array_index: this.parsed.length,options_index: this.options_index,value: option.value,text: option.text,html: option.innerHTML,title: option.title ? option.title : void 0,selected: option.selected,disabled: group_disabled === true ? group_disabled : option.disabled,group_array_index: group_position,group_label: group_position != null ? this.parsed[group_position].label : null,classes: option.className,style: option.style.cssText});} else {this.parsed.push({array_index: this.parsed.length,options_index: this.options_index,empty: true});}return this.options_index += 1;}};SelectParser.prototype.escapeExpression = function(text) {var map, unsafe_chars;if ((text == null) || text === false) {return "";}if (!/[\&\<\>\"\'\`]/.test(text)) {return text;}map = {"<": "&lt;",">": "&gt;",'"': "&quot;","'": "&#x27;","`": "&#x60;"};unsafe_chars = /&(?!\w+;)|[\<\>\"\'\`]/g;return text.replace(unsafe_chars, function(chr) {return map[chr] || "&";});};return SelectParser;})();SelectParser.select_to_array = function(select) {var child, parser, _i, _len, _ref;parser = new SelectParser();_ref = select.childNodes;for (_i = 0, _len = _ref.length; _i < _len; _i++) {child = _ref[_i];parser.add_node(child);}return parser.parsed;};AbstractChosen = (function() {function AbstractChosen(form_field, options) {this.form_field = form_field;this.options = options != null ? options : {};if (!AbstractChosen.browser_is_supported()) {return;}this.is_multiple = this.form_field.multiple;this.set_default_text();this.set_default_values();this.setup();this.set_up_html();this.register_observers();this.on_ready();}AbstractChosen.prototype.set_default_values = function() {var _this = this;this.click_test_action = function(evt) {return _this.test_active_click(evt);};this.activate_action = function(evt) {return _this.activate_field(evt);};this.isbanjiao = this.options.allow_isbanjiao;this.active_field = false;this.mouse_on_container = false;this.results_showing = false;this.result_highlighted = null;this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === "" ? this.options.allow_single_deselect : false;this.disable_search_threshold = this.options.disable_search_threshold || 0;this.disable_search = this.options.disable_search || false;this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : true;this.group_search = this.options.group_search != null ? this.options.group_search : true;this.search_contains = true || false;this.single_backstroke_delete = this.options.single_backstroke_delete != null ? this.options.single_backstroke_delete : true;this.max_selected_options = this.options.max_selected_options || Infinity;this.inherit_select_classes = this.options.inherit_select_classes || false;this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true;this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true;this.include_group_label_in_selected = this.options.include_group_label_in_selected || false;this.max_shown_results = this.options.max_shown_results || Number.POSITIVE_INFINITY;return this.case_sensitive_search = this.options.case_sensitive_search || false;};AbstractChosen.prototype.set_default_text = function() {if (this.form_field.getAttribute("data-placeholder")) {this.default_text = this.form_field.getAttribute("data-placeholder");} else if (this.is_multiple) {this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text;} else {this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text;}return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || AbstractChosen.default_no_result_text;};AbstractChosen.prototype.choice_label = function(item) {if (this.include_group_label_in_selected && (item.group_label != null)) {return "" + item.group_label + "" + item.html;} else {return item.html;}};AbstractChosen.prototype.mouse_enter = function() {return this.mouse_on_container = true;};AbstractChosen.prototype.mouse_leave = function() {return this.mouse_on_container = false;};AbstractChosen.prototype.input_focus = function(evt) {var _this = this;if (this.is_multiple) {if (!this.active_field) {return setTimeout((function() {return _this.container_mousedown();}), 50);}} else {if (!this.active_field) {return this.activate_field();}}};AbstractChosen.prototype.input_blur = function(evt) {var _this = this;if (!this.mouse_on_container) {this.active_field = false;return setTimeout((function() {return _this.blur_test();}), 100);}};AbstractChosen.prototype.results_option_build = function(options) {var content, data, data_content, shown_results, _i, _len, _ref;content = '';shown_results = 0;_ref = this.results_data;for (_i = 0, _len = _ref.length; _i < _len; _i++) {data = _ref[_i];data_content = '';if (data.group) {data_content = this.result_add_group(data);} else {data_content = this.result_add_option(data);}if (data_content !== '') {shown_results++;content += data_content;}if (options != null ? options.first : void 0) {if (data.selected && this.is_multiple) {this.choice_build(data);} else if (data.selected && !this.is_multiple) {this.single_set_selected_text(this.choice_label(data));}}if (shown_results >= this.max_shown_results) {break;}}return content;};AbstractChosen.prototype.result_add_option = function(option) {var classes, option_el;if (!option.search_match) {return '';}if (!this.include_option_in_results(option)) {return '';}classes = [];if (!option.disabled && !(option.selected && this.is_multiple)) {classes.push("active-result");}if (option.disabled && !(option.selected && this.is_multiple)) {classes.push("disabled-result");}if (option.selected) {classes.push("result-selected");}if (option.group_array_index != null) {classes.push("group-option");}if (option.classes !== "") {classes.push(option.classes);}option_el = document.createElement("li");option_el.className = classes.join(" ");option_el.style.cssText = option.style;option_el.setAttribute("data-option-array-index", option.array_index);option_el.innerHTML = option.search_text;if (option.title) {option_el.title = option.title;}return this.outerHTML(option_el);};AbstractChosen.prototype.result_add_group = function(group) {var classes, group_el;if (!(group.search_match || group.group_match)) {return '';}if (!(group.active_options > 0)) {return '';}classes = [];classes.push("group-result");if (group.classes) {classes.push(group.classes);}group_el = document.createElement("li");group_el.className = classes.join(" ");group_el.innerHTML = group.search_text;if (group.title) {group_el.title = group.title;}return this.outerHTML(group_el);};AbstractChosen.prototype.results_update_field = function() {this.set_default_text();if (!this.is_multiple) {this.results_reset_cleanup();}this.result_clear_highlight();this.results_build();if (this.results_showing) {return this.winnow_results();}};AbstractChosen.prototype.reset_single_select_options = function() {var result, _i, _len, _ref, _results;_ref = this.results_data;_results = [];for (_i = 0, _len = _ref.length; _i < _len; _i++) {result = _ref[_i];if (result.selected) {_results.push(result.selected = false);} else {_results.push(void 0);}}return _results;};AbstractChosen.prototype.results_toggle = function() {if (this.results_showing) {return this.results_hide();} else {return this.results_show();}};AbstractChosen.prototype.results_search = function(evt) {if (this.results_showing) {return this.winnow_results();} else {return this.results_show();}};AbstractChosen.prototype.winnow_results = function() {var escapedSearchText, option, regex, results, results_group, searchText, startpos, text, zregex, _i, _len, _ref;this.no_results_clear();results = 0;searchText = this.get_search_text();escapedSearchText = searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");zregex = new RegExp(escapedSearchText, 'i');regex = this.get_search_regex(escapedSearchText);_ref = this.results_data;for (_i = 0, _len = _ref.length; _i < _len; _i++) {option = _ref[_i];option.search_match = false;results_group = null;if (this.include_option_in_results(option)) {if (option.group) {option.group_match = false;option.active_options = 0;}if ((option.group_array_index != null) && this.results_data[option.group_array_index]) {results_group = this.results_data[option.group_array_index];if (results_group.active_options === 0 && results_group.search_match) {results += 1;}results_group.active_options += 1;}option.search_text = option.group ? option.label : option.html;if (!(option.group && !this.group_search)) {option.search_match = this.search_string_match(option.search_text, regex);if (option.search_match && !option.group) {results += 1;}if (option.search_match) {if (searchText.length) {startpos = option.search_text.search(zregex);text = option.search_text.substr(0, startpos + searchText.length) + '' + option.search_text.substr(startpos + searchText.length);option.search_text = text.substr(0, startpos) + '' + text.substr(startpos);}if (results_group != null) {results_group.group_match = true;}} else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) {option.search_match = true;}}}}this.result_clear_highlight();if (results < 1 && searchText.length) {this.update_results_content("");return this.no_results(searchText);} else {this.update_results_content(this.results_option_build());return this.winnow_results_set_highlight();}};AbstractChosen.prototype.get_search_regex = function(escaped_search_string) {var regex_anchor, regex_flag;regex_anchor = this.search_contains ? "" : "^";regex_flag = this.case_sensitive_search ? "" : "i";return new RegExp(regex_anchor + escaped_search_string, regex_flag);};AbstractChosen.prototype.search_string_match = function(search_string, regex) {var part, parts, _i, _len;if (regex.test(search_string)) {return true;} else if (this.enable_split_word_search && (search_string.indexOf(" ") >= 0 || search_string.indexOf("[") === 0)) {parts = search_string.replace(/\[|\]/g, "").split(" ");if (parts.length) {for (_i = 0, _len = parts.length; _i < _len; _i++) {part = parts[_i];if (regex.test(part)) {return true;}}}}};AbstractChosen.prototype.choices_count = function() {var option, _i, _len, _ref;if (this.selected_option_count != null) {return this.selected_option_count;}this.selected_option_count = 0;_ref = this.form_field.options;for (_i = 0, _len = _ref.length; _i < _len; _i++) {option = _ref[_i];if (option.selected) {this.selected_option_count += 1;}}return this.selected_option_count;};AbstractChosen.prototype.choices_click = function(evt) {evt.preventDefault();if (!(this.results_showing || this.is_disabled)) {return this.results_show();}};AbstractChosen.prototype.keyup_checker = function(evt) {var stroke, _ref;stroke = (_ref = evt.which) != null ? _ref : evt.keyCode;this.search_field_scale();switch (stroke) {case 8:if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) {return this.keydown_backstroke();} else if (!this.pending_backstroke) {this.result_clear_highlight();return this.results_search();}break;case 13:evt.preventDefault();if (this.results_showing) {return this.result_select(evt);}break;case 27:if (this.results_showing) {this.results_hide();}return true;case 9:case 38:case 40:case 16:case 91:case 17:case 18:break;default:return this.results_search();}};AbstractChosen.prototype.clipboard_event_checker = function(evt) {var _this = this;return setTimeout((function() {return _this.results_search();}), 50);};AbstractChosen.prototype.container_width = function() {if (this.options.width != null) {return this.options.width;} else {return "" + this.form_field.offsetWidth + "px";}};AbstractChosen.prototype.include_option_in_results = function(option) {if (this.is_multiple && (!this.display_selected_options && option.selected)) {return false;}if (!this.display_disabled_options && option.disabled) {return false;}if (option.empty) {return false;}return true;};AbstractChosen.prototype.search_results_touchstart = function(evt) {this.touch_started = true;return this.search_results_mouseover(evt);};AbstractChosen.prototype.search_results_touchmove = function(evt) {this.touch_started = false;return this.search_results_mouseout(evt);};AbstractChosen.prototype.search_results_touchend = function(evt) {if (this.touch_started) {return this.search_results_mouseup(evt);}};AbstractChosen.prototype.outerHTML = function(element) {var tmp;if (element.outerHTML) {return element.outerHTML;}tmp = document.createElement("div");tmp.appendChild(element);return tmp.innerHTML;};AbstractChosen.browser_is_supported = function() {if ("Microsoft Internet Explorer" === window.navigator.appName) {return document.documentMode >= 8;}if (/iP(od|hone)/i.test(window.navigator.userAgent) || /IEMobile/i.test(window.navigator.userAgent) || /Windows Phone/i.test(window.navigator.userAgent) || /BlackBerry/i.test(window.navigator.userAgent) || /BB10/i.test(window.navigator.userAgent) || /Android.*Mobile/i.test(window.navigator.userAgent)) {return false;}return true;};AbstractChosen.default_multiple_text = "Select Some Options";AbstractChosen.default_single_text = "Select an Option";AbstractChosen.default_no_result_text = "No results match";return AbstractChosen;})();$ = jQuery;$.fn.extend({chosen: function(options) {if (!AbstractChosen.browser_is_supported()) {return this;}return this.each(function(input_field) {var $this, chosen;$this = $(this);chosen = $this.data('chosen');if (options === 'destroy') {if (chosen instanceof Chosen) {chosen.destroy();}return;}if (!(chosen instanceof Chosen)) {$this.data('chosen', new Chosen(this, options));}});}});Chosen = (function(_super) {__extends(Chosen, _super);function Chosen() {_ref = Chosen.__super__.constructor.apply(this, arguments);return _ref;}Chosen.prototype.setup = function() {this.form_field_jq = $(this.form_field);this.current_selectedIndex = this.form_field.selectedIndex;return this.is_rtl = this.form_field_jq.hasClass("chosen-rtl");};Chosen.prototype.set_up_html = function() {var container_classes, container_props;container_classes = ["chosen-container"];container_classes.push("chosen-container-" + (this.is_multiple ? "multi" : "single"));if (this.inherit_select_classes && this.form_field.className) {container_classes.push(this.form_field.className);}if (this.is_rtl) {container_classes.push("chosen-rtl");}container_props = {'class': container_classes.join(' '),'style': "width: " + (this.container_width()) + ";",'title': this.form_field.title};if (this.form_field.id.length) {container_props.id = this.form_field.id.replace(/[^\w]/g, '_') + "_chosen";}this.container = $("", container_props);if (this.is_multiple) {this.container.html('
  • + this.default_text + '" class="default" autocomplete="off" />
    '
    );} else {var banjiao = '';if (this.isbanjiao) {banjiao = 'style="border-radius: 0px 20px 20px 0px;"'}this.container.html(' + banjiao+ '>' + this.default_text + '
      '
      );}this.form_field_jq.hide().after(this.container);this.dropdown = this.container.find('div.chosen-drop').first();this.search_field = this.container.find('input').first();this.search_results = this.container.find('ul.chosen-results').first();this.search_field_scale();this.search_no_results = this.container.find('li.no-results').first();if (this.is_multiple) {this.search_choices = this.container.find('ul.chosen-choices').first();this.search_container = this.container.find('li.search-field').first();} else {this.search_container = this.container.find('div.chosen-search').first();this.selected_item = this.container.find('.chosen-single').first();}this.results_build();this.set_tab_index();return this.set_label_behavior();};Chosen.prototype.on_ready = function() {return this.form_field_jq.trigger("chosen:ready", {chosen: this});};Chosen.prototype.register_observers = function() {var _this = this;this.container.bind('touchstart.chosen', function(evt) {_this.container_mousedown(evt);return evt.preventDefault();});this.container.bind('touchend.chosen', function(evt) {_this.container_mouseup(evt);return evt.preventDefault();});this.container.bind('mousedown.chosen', function(evt) {_this.container_mousedown(evt);});this.container.bind('mouseup.chosen', function(evt) {_this.container_mouseup(evt);});this.container.bind('mouseenter.chosen', function(evt) {_this.mouse_enter(evt);});this.container.bind('mouseleave.chosen', function(evt) {_this.mouse_leave(evt);});this.search_results.bind('mouseup.chosen', function(evt) {_this.search_results_mouseup(evt);});this.search_results.bind('mouseover.chosen', function(evt) {_this.search_results_mouseover(evt);});this.search_results.bind('mouseout.chosen', function(evt) {_this.search_results_mouseout(evt);});this.search_results.bind('mousewheel.chosen DOMMouseScroll.chosen', function(evt) {_this.search_results_mousewheel(evt);});this.search_results.bind('touchstart.chosen', function(evt) {_this.search_results_touchstart(evt);});this.search_results.bind('touchmove.chosen', function(evt) {_this.search_results_touchmove(evt);});this.search_results.bind('touchend.chosen', function(evt) {_this.search_results_touchend(evt);});this.form_field_jq.bind("chosen:updated.chosen", function(evt) {_this.results_update_field(evt);});this.form_field_jq.bind("chosen:activate.chosen", function(evt) {_this.activate_field(evt);});this.form_field_jq.bind("chosen:open.chosen", function(evt) {_this.container_mousedown(evt);});this.form_field_jq.bind("chosen:close.chosen", function(evt) {_this.input_blur(evt);});this.search_field.bind('blur.chosen', function(evt) {_this.input_blur(evt);});this.search_field.bind('keyup.chosen', function(evt) {_this.keyup_checker(evt);});this.search_field.bind('keydown.chosen', function(evt) {_this.keydown_checker(evt);});this.search_field.bind('focus.chosen', function(evt) {_this.input_focus(evt);});this.search_field.bind('cut.chosen', function(evt) {_this.clipboard_event_checker(evt);});this.search_field.bind('paste.chosen', function(evt) {_this.clipboard_event_checker(evt);});if (this.is_multiple) {return this.search_choices.bind('click.chosen', function(evt) {_this.choices_click(evt);});} else {return this.container.bind('click.chosen', function(evt) {evt.preventDefault();});}};Chosen.prototype.destroy = function() {$(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action);if (this.search_field[0].tabIndex) {this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex;}this.container.remove();this.form_field_jq.removeData('chosen');return this.form_field_jq.show();};Chosen.prototype.search_field_disabled = function() {this.is_disabled = this.form_field_jq[0].disabled;if (this.is_disabled) {this.container.addClass('chosen-disabled');this.search_field[0].disabled = true;if (!this.is_multiple) {this.selected_item.unbind("focus.chosen", this.activate_action);}return this.close_field();} else {this.container.removeClass('chosen-disabled');this.search_field[0].disabled = false;if (!this.is_multiple) {return this.selected_item.bind("focus.chosen", this.activate_action);}}};Chosen.prototype.container_mousedown = function(evt) {if (!this.is_disabled) {if (evt && evt.type === "mousedown" && !this.results_showing) {evt.preventDefault();}if (!((evt != null) && ($(evt.target)).hasClass("search-choice-close"))) {if (!this.active_field) {if (this.is_multiple) {this.search_field.val("");}$(this.container[0].ownerDocument).bind('click.chosen', this.click_test_action);this.results_show();} else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents("a.chosen-single").length)) {evt.preventDefault();this.results_toggle();}return this.activate_field();}}};Chosen.prototype.container_mouseup = function(evt) {if (evt.target.nodeName === "ABBR" && !this.is_disabled) {return this.results_reset(evt);}};Chosen.prototype.search_results_mousewheel = function(evt) {var delta;if (evt.originalEvent) {delta = evt.originalEvent.deltaY || -evt.originalEvent.wheelDelta || evt.originalEvent.detail;}if (delta != null) {evt.preventDefault();if (evt.type === 'DOMMouseScroll') {delta = delta * 40;}return this.search_results.scrollTop(delta + this.search_results.scrollTop());}};Chosen.prototype.blur_test = function(evt) {if (!this.active_field && this.container.hasClass("chosen-container-active")) {return this.close_field();}};Chosen.prototype.close_field = function() {$(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action);this.active_field = false;this.results_hide();this.container.removeClass("chosen-container-active");this.clear_backstroke();this.show_search_field_default();return this.search_field_scale();};Chosen.prototype.activate_field = function() {this.container.addClass("chosen-container-active");this.active_field = true;this.search_field.val(this.search_field.val());return this.search_field.focus();};Chosen.prototype.test_active_click = function(evt) {var active_container;active_container = $(evt.target).closest('.chosen-container');if (active_container.length && this.container[0] === active_container[0]) {return this.active_field = true;} else {return this.close_field();}};Chosen.prototype.results_build = function() {this.parsing = true;this.selected_option_count = null;this.results_data = SelectParser.select_to_array(this.form_field);if (this.is_multiple) {this.search_choices.find("li.search-choice").remove();} else if (!this.is_multiple) {this.single_set_selected_text();if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) {this.search_field[0].readOnly = true;this.container.addClass("chosen-container-single-nosearch");} else {this.search_field[0].readOnly = false;this.container.removeClass("chosen-container-single-nosearch");}}this.update_results_content(this.results_option_build({first: true}));this.search_field_disabled();this.show_search_field_default();this.search_field_scale();return this.parsing = false;};Chosen.prototype.result_do_highlight = function(el) {var high_bottom, high_top, maxHeight, visible_bottom, visible_top;if (el.length) {this.result_clear_highlight();this.result_highlight = el;this.result_highlight.addClass("highlighted");maxHeight = parseInt(this.search_results.css("maxHeight"), 10);visible_top = this.search_results.scrollTop();visible_bottom = maxHeight + visible_top;high_top = this.result_highlight.position().top + this.search_results.scrollTop();high_bottom = high_top + this.result_highlight.outerHeight();if (high_bottom >= visible_bottom) {return this.search_results.scrollTop((high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0);} else if (high_top < visible_top) {return this.search_results.scrollTop(high_top);}}};Chosen.prototype.result_clear_highlight = function() {if (this.result_highlight) {this.result_highlight.removeClass("highlighted");}return this.result_highlight = null;};Chosen.prototype.results_show = function() {if (this.is_multiple && this.max_selected_options <= this.choices_count()) {this.form_field_jq.trigger("chosen:maxselected", {chosen: this});return false;}this.container.addClass("chosen-with-drop");this.results_showing = true;this.search_field.focus();this.search_field.val(this.search_field.val());this.winnow_results();return this.form_field_jq.trigger("chosen:showing_dropdown", {chosen: this});};Chosen.prototype.update_results_content = function(content) {return this.search_results.html(content);};Chosen.prototype.results_hide = function() {if (this.results_showing) {this.result_clear_highlight();this.container.removeClass("chosen-with-drop");this.form_field_jq.trigger("chosen:hiding_dropdown", {chosen: this});}return this.results_showing = false;};Chosen.prototype.set_tab_index = function(el) {var ti;if (this.form_field.tabIndex) {ti = this.form_field.tabIndex;this.form_field.tabIndex = -1;return this.search_field[0].tabIndex = ti;}};Chosen.prototype.set_label_behavior = function() {var _this = this;this.form_field_label = this.form_field_jq.parents("label");if (!this.form_field_label.length && this.form_field.id.length) {this.form_field_label = $("label[for='" + this.form_field.id + "']");}if (this.form_field_label.length > 0) {return this.form_field_label.bind('click.chosen', function(evt) {if (_this.is_multiple) {return _this.container_mousedown(evt);} else {return _this.activate_field();}});}};Chosen.prototype.show_search_field_default = function() {if (this.is_multiple && this.choices_count() < 1 && !this.active_field) {this.search_field.val(this.default_text);return this.search_field.addClass("default");} else {this.search_field.val("");return this.search_field.removeClass("default");}};Chosen.prototype.search_results_mouseup = function(evt) {var target;target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();if (target.length) {this.result_highlight = target;this.result_select(evt);return this.search_field.focus();}};Chosen.prototype.search_results_mouseover = function(evt) {var target;target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();if (target) {return this.result_do_highlight(target);}};Chosen.prototype.search_results_mouseout = function(evt) {if ($(evt.target).hasClass("active-result" || $(evt.target).parents('.active-result').first())) {return this.result_clear_highlight();}};Chosen.prototype.choice_build = function(item) {var choice, close_link,_this = this;choice = $('
    • ', {"class": "search-choice"}).html("" + (this.choice_label(item)) + "");if (item.disabled) {choice.addClass('search-choice-disabled');} else {close_link = $('', {"class": 'search-choice-close','data-option-array-index': item.array_index});close_link.bind('click.chosen', function(evt) {return _this.choice_destroy_link_click(evt);});choice.append(close_link);}return this.search_container.before(choice);};Chosen.prototype.choice_destroy_link_click = function(evt) {evt.preventDefault();evt.stopPropagation();if (!this.is_disabled) {return this.choice_destroy($(evt.target));}};Chosen.prototype.choice_destroy = function(link) {if (this.result_deselect(link[0].getAttribute("data-option-array-index"))) {this.show_search_field_default();if (this.is_multiple && this.choices_count() > 0 && this.search_field.val().length < 1) {this.results_hide();}link.parents('li').first().remove();return this.search_field_scale();}};Chosen.prototype.results_reset = function() {this.reset_single_select_options();this.form_field.options[0].selected = true;this.single_set_selected_text();this.show_search_field_default();this.results_reset_cleanup();this.form_field_jq.trigger("change");if (this.active_field) {return this.results_hide();}};Chosen.prototype.results_reset_cleanup = function() {this.current_selectedIndex = this.form_field.selectedIndex;return this.selected_item.find("abbr").remove();};Chosen.prototype.result_select = function(evt) {var high, item;if (this.result_highlight) {high = this.result_highlight;this.result_clear_highlight();if (this.is_multiple && this.max_selected_options <= this.choices_count()) {this.form_field_jq.trigger("chosen:maxselected", {chosen: this});return false;}if (this.is_multiple) {high.removeClass("active-result");} else {this.reset_single_select_options();}high.addClass("result-selected");item = this.results_data[high[0].getAttribute("data-option-array-index")];item.selected = true;this.form_field.options[item.options_index].selected = true;this.selected_option_count = null;if (this.is_multiple) {this.choice_build(item);} else {this.single_set_selected_text(this.choice_label(item));}if (!((evt.metaKey || evt.ctrlKey) && this.is_multiple)) {this.results_hide();}this.show_search_field_default();if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) {this.form_field_jq.trigger("change", {'selected': this.form_field.options[item.options_index].value});}this.current_selectedIndex = this.form_field.selectedIndex;evt.preventDefault();return this.search_field_scale();}};Chosen.prototype.single_set_selected_text = function(text) {if (text == null) {text = this.default_text;}if (text === this.default_text) {this.selected_item.addClass("chosen-default");} else {this.single_deselect_control_build();this.selected_item.removeClass("chosen-default");}return this.selected_item.find("span").html(text);};Chosen.prototype.result_deselect = function(pos) {var result_data;result_data = this.results_data[pos];if (!this.form_field.options[result_data.options_index].disabled) {result_data.selected = false;this.form_field.options[result_data.options_index].selected = false;this.selected_option_count = null;this.result_clear_highlight();if (this.results_showing) {this.winnow_results();}this.form_field_jq.trigger("change", {deselected: this.form_field.options[result_data.options_index].value});this.search_field_scale();return true;} else {return false;}};Chosen.prototype.single_deselect_control_build = function() {if (!this.allow_single_deselect) {return;}if (!this.selected_item.find("abbr").length) {this.selected_item.find("span").first().after("");}return this.selected_item.addClass("chosen-single-with-deselect");};Chosen.prototype.get_search_text = function() {return $('').text($.trim(this.search_field.val())).html();};Chosen.prototype.winnow_results_set_highlight = function() {var do_high, selected_results;selected_results = !this.is_multiple ? this.search_results.find(".result-selected.active-result") : [];do_high = selected_results.length ? selected_results.first() : this.search_results.find(".active-result").first();if (do_high != null) {return this.result_do_highlight(do_high);}};Chosen.prototype.no_results = function(terms) {var no_results_html;no_results_html = $('
    • ' + this.results_none_found + ' ""
    • '
      );no_results_html.find("span").first().html(terms);this.search_results.append(no_results_html);return this.form_field_jq.trigger("chosen:no_results", {chosen: this});};Chosen.prototype.no_results_clear = function() {return this.search_results.find(".no-results").remove();};Chosen.prototype.keydown_arrow = function() {var next_sib;if (this.results_showing && this.result_highlight) {next_sib = this.result_highlight.nextAll("li.active-result").first();if (next_sib) {return this.result_do_highlight(next_sib);}} else {return this.results_show();}};Chosen.prototype.keyup_arrow = function() {var prev_sibs;if (!this.results_showing && !this.is_multiple) {return this.results_show();} else if (this.result_highlight) {prev_sibs = this.result_highlight.prevAll("li.active-result");if (prev_sibs.length) {return this.result_do_highlight(prev_sibs.first());} else {if (this.choices_count() > 0) {this.results_hide();}return this.result_clear_highlight();}}};Chosen.prototype.keydown_backstroke = function() {var next_available_destroy;if (this.pending_backstroke) {this.choice_destroy(this.pending_backstroke.find("a").first());return this.clear_backstroke();} else {next_available_destroy = this.search_container.siblings("li.search-choice").last();if (next_available_destroy.length && !next_available_destroy.hasClass("search-choice-disabled")) {this.pending_backstroke = next_available_destroy;if (this.single_backstroke_delete) {return this.keydown_backstroke();} else {return this.pending_backstroke.addClass("search-choice-focus");}}}};Chosen.prototype.clear_backstroke = function() {if (this.pending_backstroke) {this.pending_backstroke.removeClass("search-choice-focus");}return this.pending_backstroke = null;};Chosen.prototype.keydown_checker = function(evt) {var stroke, _ref1;stroke = (_ref1 = evt.which) != null ? _ref1 : evt.keyCode;this.search_field_scale();if (stroke !== 8 && this.pending_backstroke) {this.clear_backstroke();}switch (stroke) {case 8:this.backstroke_length = this.search_field.val().length;break;case 9:if (this.results_showing && !this.is_multiple) {this.result_select(evt);}this.mouse_on_container = false;break;case 13:if (this.results_showing) {evt.preventDefault();}break;case 32:if (this.disable_search) {evt.preventDefault();}break;case 38:evt.preventDefault();this.keyup_arrow();break;case 40:evt.preventDefault();this.keydown_arrow();break;}};Chosen.prototype.search_field_scale = function() {var div, f_width, h, style, style_block, styles, w, _i, _len;if (this.is_multiple) {h = 0;w = 0;style_block = "position:absolute; left: -1000px; top: -1000px; display:none;";styles = ['font-size', 'font-style', 'font-weight', 'font-family', 'line-height', 'text-transform', 'letter-spacing'];for (_i = 0, _len = styles.length; _i < _len; _i++) {style = styles[_i];style_block += style + ":" + this.search_field.css(style) + ";";}div = $('', {'style': style_block});div.text(this.search_field.val());$('body').append(div);w = div.width() + 25;div.remove();f_width = this.container.outerWidth();if (w > f_width - 10) {w = f_width - 10;}return this.search_field.css({'width': w + 'px'});}};return Chosen;})(AbstractChosen);}).call(this);


      本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

      相关文章

      立即
      投稿

      微信公众账号

      微信扫一扫加关注

      返回
      顶部