一级为省份二级为主机,当选择省份时二级无法指定默认选项
现象:输出二级选项的选择索引为-1,在初始化时指定了selectIndex为0
原因:二级菜单在一步请求时数据还没加载完所以指定的选项失效,再获取selectItem时则为-1
解决方法:在Adapter中指定加载完成后再选择默认选择项(红色部分)
// 初始化省份查询条件
function initProvince() {var url = './system/application/getProvince.web';
var sourcePro = {
type : "post",
datatype : "json",
datafields : [ {
name : 'id'
}, {
name : 'name'
} ],
url : url
};
var dataAdapter = new $.jqx.dataAdapter(sourcePro);
$("#province").jqxComboBox({
source : dataAdapter,
width : 120,
height : 25,
selectedIndex : 0,
displayMember : "name",
valueMember : "id",
});
$("#province").on('change', function(event) {
var args = event.args;
if (args != undefined) {
var item = event.args.item;
if (item != null) {
var url = './system/application/getHosts.web?regionID='
+ item.value + '&unitid=0';
// prepare the data
var sourceIP = {
type : "get",
datatype : "json",
datafields : [ {
name : 'host'
}, {
name : 'hostid'
} ],
url : url,
};
var dataAdapter = new $.jqx.dataAdapter(
sourceIP, {
loadComplete : function(records) {
$("#hostIP").jqxComboBox(
'selectIndex', 0);
}
});
$("#hostIP").jqxComboBox({
source : dataAdapter
});
}
}
});
}
// 初始化主机IP查询条件
function initHostIP(pro, region) {
var url = './system/application/getHosts.web?regionID=' + pro
+ '&unitid=' + region;
// prepare the data
var sourceIP = {
type : "get",
datatype : "json",
datafields : [ {
name : 'host'
}, {
name : 'hostid'
} ],
url : url,
};
var dataAdapter = new $.jqx.dataAdapter(sourceIP);
$("#hostIP").jqxComboBox({
source : dataAdapter,
width : 120,
height : 25,
selectedIndex : 0,
displayMember : "host",
valueMember : "hostid",
});
console.log($("#hostIP").jqxComboBox('getSelectedIndex'));
}