소스 검색

support removing elements that have non-numeric ids

Igor Vaynberg 13 년 전
부모
커밋
b18b9aecd8
1개의 변경된 파일19개의 추가작업 그리고 1개의 파일을 삭제
  1. 19 1
      select2.js

+ 19 - 1
select2.js

@@ -65,6 +65,24 @@
         }
     };
 
+    function indexOf(value, array) {
+        var i = 0, l = array.length, v;
+
+        if (value.constructor === String) {
+            for (; i < l; i++) if (value.localeCompare(array[i]) === 0) return i;
+        } else {
+            for (; i < l; i++) {
+                v = array[i];
+                if (v.constructor === String) {
+                    if (v.localeCompare(value) === 0) return i;
+                } else {
+                    if (v === value) return i;
+                }
+            }
+        }
+        return -1;
+    }
+
     function getSideBorderPadding(element) {
         return element.outerWidth() - element.width();
     }
@@ -970,7 +988,7 @@
             throw "Invalid argument: " + selected + ". Must be .select2-search-choice";
         }
 
-        index = val.indexOf(selected.data("select2-data").id);
+        index = indexOf(selected.data("select2-data").id, val);
 
         if (index >= 0) {
             val.splice(index, 1);