jquery 的autocomplete做combobox的多选怎么解决
发布网友
发布时间:2022-05-17 19:16
我来回答
共3个回答
懂视网
时间:2022-05-17 23:37
最近在IE10中开发jquery,关于jquery中combobox多选不能兼容的问题,进行一些总结。
当给combobox设置属性“multiple:true”时,IE10无法完成多选,其报错如下:
代码如下:
function _7e8(_7e9,_7ea){
var _7eb=$.data(_7e9,"combobox");
var opts=_7eb.options;
var _7ec=$(_7e9).combo("getValues");
var _7ed=_7ec.indexOf(_7ea+"");//10650行 这里报错
if(_7ed>=0){
_7ec.splice(_7ed,1);
_7e7(_7e9,_7ec);
也就是在F12中报不支持indexOf方法,现在对这种问题有两种解决方案:
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;
};
}
其实我还是蛮推荐第一种方法的,因为比较方便,我就是用的第一种方式。
热心网友
时间:2022-05-17 20:45
前我遇问题要使用onChange使用loader我用J2EE知道用环境体差主要JSHTML部试试:
需求:1、每输入字符读取数据库查询15条近似数据2、读数据按、键+车键进行选择
【JavaScript】
//easyUI combobox要使用onChange做读取数据库操作BUG建议使用loader
var btsloader = function(param,success,error){
//获取输入值
var q = param.q || "";
//处qlength代表输入少字符始查询
if(q.length <= 0) return false;
$.ajax({
url:"/jsonObj/costAction_getJSONCostList",
type:"post",
data:{
//传值JSON数据
searchName:q
},
//重要写jsonp报转换错误处写都
dataType:"json",
success:function(data){
//关键步骤遍历MAP象
var items = $.map(data.rows, function(item){
return {
id:item.id,
name:item.text
};
});
//执行loadersuccess
success(items);
},
//异处理
error:function(xml, text, msg){
error.apply(this, arguments);
}
});
};
【HTML】
<input id="costId" name="costId" class="easyui-combobox" style="width:250px;" data-options="
loader: btsloader,
mode: 'remote',
valueField: 'id',
textField: 'name'" />
【JAVA】public String getJSONCostList() throws UnsupportedEncodingException, JSONException{
List<HashMap> jsonArr = new ArrayList<HashMap>();
List list = costService.searchCosts(0, 14, searchName);
for(Cost c: list){
HashMap hm = new HashMap();
hm.put("id", c.getId());
hm.put("text", c.getBtsName());
jsonArr.add(hm);
}
HashMap hm = new HashMap();
hm.put("rows", jsonArr);
result = JSONObject.fromObject(hm);
return "ajax";
}
【struts.xml】
result
传入JSON Object举例: {"rows":[{"id":1,"text":"基站1"},{"id":2,"text":"基站2"}]}
热心网友
时间:2022-05-17 22:03
每个都对,每个都不对,综合考金融jquery 的autocomplete做combobox的多选怎么解决