最近在IE10中開發jquery,關於jquery中combobox多選不能相容的問題,進行一些總結。
當combobox設定屬性「multiple:true」時,IE10無法完成多選,其報錯誤如下:
複製代碼
複製代碼
複製代碼
程式碼如下:
function _7e8(_7e9,_7ea){
var _7eb=$.data(_7e9,"combobox");
var opts=7. ;
var _7ec=$(_7e9).combo("getValues");
1.修改源碼
將以上代碼修改為
複製代碼
代碼如下:
function _7e8(_7e9,_7ea){
var _7eb=$.data(_7e9,"combobox");
var opts=_7eb.options ;
var _7ec=$(_7e9).combo("getValues");
var _7ed = (function(arr,str){
str = str "";
for(var i= 0,l=arr.length;i
if(arr[i] == str) return i; } return -1; })(_7ec, _7ea); if(_7ed >= 0){//修改於2013-6-25 19:04 _7ec.splice(_7ed,1); _7e7(_7e9,_7ec); }
2.加入indexOf方法
複製程式碼
程式碼如下:
if(!Array.prototype.indexOf){ Array.prototype.indexOf = function(target){ for(var i=0,l=this.length ;iif(this[i] === target) return i; } return -1; }; } 其實我還蠻推薦第一種方法的,因為比較方便,我就是用的第一種方式。