From ea7f9343bf4545e27cd9ed216e5df366198a2b31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Perrin?= Date: Wed, 9 Jan 2013 18:12:34 +0100 Subject: [PATCH] Fix IE7 and IE8 compatibility --- lib/ajax-chosen.js | 6 ++++-- lib/ajax-chosen.min.js | 6 +++--- src/ajax-chosen.coffee | 9 +++++++-- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/lib/ajax-chosen.js b/lib/ajax-chosen.js index b45b60c..63d220c 100644 --- a/lib/ajax-chosen.js +++ b/lib/ajax-chosen.js @@ -50,7 +50,7 @@ } success = options.success; options.success = function(data) { - var items, selected_values; + var items, nbItems, selected_values; if (!(data != null)) { return; } @@ -66,8 +66,10 @@ return $(this).remove(); }); items = callback(data); + nbItems = 0; $.each(items, function(i, element) { var group, text, value; + nbItems++; if (element.group) { group = select.find("optgroup[label='" + element.text + "']"); if (!group.size()) { @@ -100,7 +102,7 @@ } } }); - if (Object.keys(items).length) { + if (nbItems) { select.trigger("liszt:updated"); } else { select.data().chosen.no_results_clear(); diff --git a/lib/ajax-chosen.min.js b/lib/ajax-chosen.min.js index dcfa772..a22aac0 100644 --- a/lib/ajax-chosen.min.js +++ b/lib/ajax-chosen.min.js @@ -7,11 +7,11 @@ $(this).data('prevVal',val);if(this.timer){clearTimeout(this.timer);} if(val.length");} +success=options.success;options.success=function(data){var items,nbItems,selected_values;if(!(data!=null)){return;} +selected_values=[];select.find('option').each(function(){if(!$(this).is(":selected")){return $(this).remove();}else{return selected_values.push($(this).val()+"-"+$(this).text());}});select.find('optgroup:empty').each(function(){return $(this).remove();});items=callback(data);nbItems=0;$.each(items,function(i,element){var group,text,value;nbItems++;if(element.group){group=select.find("optgroup[label='"+element.text+"']");if(!group.size()){group=$("");} group.attr('label',element.text).appendTo(select);return $.each(element.items,function(i,element){var text,value;if(typeof element==="string"){value=i;text=element;}else{value=element.value;text=element.text;} if($.inArray(value+"-"+text,selected_values)===-1){return $("") unless group.size() @@ -126,8 +131,8 @@ do ($ = jQuery) -> .attr('value', value) .html(text) .appendTo(select) - - if Object.keys(items).length + + if nbItems # Tell chosen that the contents of the