diff --git a/chosen/chosen.jquery.js b/chosen/chosen.jquery.js
index 5d86cb8..b889d63 100644
--- a/chosen/chosen.jquery.js
+++ b/chosen/chosen.jquery.js
@@ -273,18 +273,20 @@
};
Chosen.prototype.result_do_highlight = function(el) {
var high_bottom, high_top, maxHeight, visible_bottom, visible_top;
- 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;
- 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);
+ if (el) {
+ 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;
+ 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() {
@@ -451,7 +453,7 @@
startTime = new Date();
this.no_results_clear();
results = 0;
- searchText = this.search_field.value === this.default_text ? "" : $.trim(this.search_field.value);
+ searchText = this.search_field.val() === this.default_text ? "" : $.trim(this.search_field.val());
regex = new RegExp('^' + searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i');
zregex = new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i');
_ref = this.results_data;
@@ -486,18 +488,18 @@
} else {
text = option.text;
}
- if ($(result_id).innerHTML !== text) {
- $(result_id).text(text);
+ if ($("#" + result_id).html !== text) {
+ $("#" + result_id).html(text);
}
- this.result_activate($(result_id));
+ this.result_activate($("#" + result_id));
if (option.group_id != null) {
- $(this.results_data[option.group_id].dom_id).show();
+ $("#" + this.results_data[option.group_id].dom_id).show();
}
} else {
- if ($(result_id) === this.result_highlight) {
+ if (this.result_highlight && result_id === this.result_highlight.attr('id')) {
this.result_clear_highlight();
}
- this.result_deactivate($(result_id));
+ this.result_deactivate($("#" + result_id));
}
}
}
@@ -530,9 +532,10 @@
}
};
Chosen.prototype.no_results = function(terms) {
- return this.search_results.insert(this.no_results_temp.evaluate({
- "terms": terms.escapeHTML()
- }));
+ var no_results_html;
+ no_results_html = $('
No results match ""');
+ no_results_html.find("span").first().text(terms);
+ return this.search_results.append(no_results_html);
};
Chosen.prototype.no_results_clear = function() {
return this.search_results.find(".no-results").remove();
@@ -675,11 +678,8 @@
root.get_side_border_padding = get_side_border_padding;
first_intersect = function(a1, a2) {
var element, _i, _len;
- console.log(a2);
for (_i = 0, _len = a1.length; _i < _len; _i++) {
element = a1[_i];
- console.log(element);
- console.log($.inArray(element, a2));
if ($.inArray(element, a2)) {
return element;
}
diff --git a/coffee/chosen.jquery.coffee b/coffee/chosen.jquery.coffee
index 920aa91..e974c2d 100644
--- a/coffee/chosen.jquery.coffee
+++ b/coffee/chosen.jquery.coffee
@@ -57,10 +57,6 @@ class Chosen
@result_single_selected = null
@choices = 0
- # HTML Templates
- #@no_results_temp = new Template('No results match "#{terms}"')
-
-
set_up_html: ->
@container_id = @form_field.id + "_chzn"
@@ -245,6 +241,7 @@ class Chosen
this.results_build()
result_do_highlight: (el) ->
+ if el
this.result_clear_highlight();
@result_highlight = el;
@@ -253,10 +250,10 @@ class Chosen
maxHeight = parseInt @search_results.css("maxHeight"), 10
visible_top = @search_results.scrollTop()
visible_bottom = maxHeight + visible_top
-
+
high_top = @result_highlight.position().top
high_bottom = high_top + @result_highlight.outerHeight()
-
+
#console.log visible_top, visible_bottom, high_top, high_bottom
if high_bottom >= visible_bottom
@@ -413,10 +410,10 @@ class Chosen
winnow_results: ->
startTime = new Date()
this.no_results_clear()
-
+
results = 0
- searchText = if @search_field.value is @default_text then "" else $.trim @search_field.value
+ searchText = if @search_field.val() is @default_text then "" else $.trim @search_field.val()
regex = new RegExp('^' + searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i')
zregex = new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i')
@@ -448,17 +445,17 @@ class Chosen
else
text = option.text
- $(result_id).text text if $(result_id).innerHTML != text
+ $("#" + result_id).html text if $("#" + result_id).html != text
- this.result_activate $(result_id)
+ this.result_activate $("#" + result_id)
- $(@results_data[option.group_id].dom_id).show() if option.group_id?
+ $("#" + @results_data[option.group_id].dom_id).show() if option.group_id?
else
- this.result_clear_highlight() if $(result_id) is @result_highlight
- this.result_deactivate $(result_id)
-
+ this.result_clear_highlight() if @result_highlight and result_id is @result_highlight.attr 'id'
+ this.result_deactivate $("#" + result_id)
+
if results < 1 and searchText.length
- this.no_results(searchText)
+ this.no_results searchText
else
this.winnow_results_set_highlight()
@@ -480,7 +477,10 @@ class Chosen
this.result_do_highlight do_high
no_results: (terms) ->
- @search_results.insert @no_results_temp.evaluate({"terms":terms.escapeHTML()})
+ no_results_html = $('No results match ""')
+ no_results_html.find("span").first().text(terms)
+
+ @search_results.append no_results_html
no_results_clear: ->
@search_results.find(".no-results").remove()
@@ -592,10 +592,10 @@ root.get_side_border_padding = get_side_border_padding
first_intersect = (a1, a2) ->
# TODO for some reason, up arrow doesn't find the first
- console.log a2
+ #console.log a2
for element in a1
- console.log element
- console.log $.inArray element, a2
+ #console.log element
+ #console.log $.inArray element, a2
return element if $.inArray element, a2
return null