您的位置:首页 > 产品设计 > UI/UE

LigerUI中下拉框Combox级联操作中,后combox返回空串的问题

2013-10-23 14:43 239 查看
动态:更新几篇工作中ligerUI的文章。

目的:记录、累积经验;既作自己收藏、同也分享大家。

归档:最近几篇博客全部归档在《LigerUI—工作随记》中,方便查阅哈

博客中不更新控件js使用,因为都用具体的教程demo和api。稍后上传博客中~

在此写一些工作中使用,在api中没有找到,或没有在明显地方。

今天核心:LigerUI中combox级联操作,第二个combox返回空串

Demo:

第一个combox查询部门的树形结构。第二个combox显示部门下所有的员工。

级联事件:

combox的onSelected或onBeforeSelect事件。

$.ajax({
url : "/ibpe/departadduser/selectUsersByDepartID.do?",
dataType : "json",
type : "post",
data : {
"presid" : depart
},
success : function(data, msg) {
liger.get("realname").setData(data);
},
error : function() {
$.ligerDialog.error("查询用户信息失败");
}
});

但是:若data为空,即使使用:liger.get("realname").setData(data); 赋值,打印realname combox的数据源为null,但是显示combox下拉框文本依然保留 上次 显示的数据源。

即使想法设法:liger.get("realname").data=null; liger.get("realname").data=“”liger.get("realname").data=“[]”

结果统统不可以。

按理说,赋值给null,就可以了,到底怎么回事?

分析部门源码如下:

setData: function (data)
{
var g = this, p = this.options;
if (!data || !data.length) return;
if (g.data != data) g.data = data;

看这段代码,可以发现,怪不得,若返回空时,保留上次的数据文本呢。

if (!data || !data.length) return; 当data.length=0时,竟然return了。

因此,if (g.data != data) g.data = data,这说明,对象.data 或setData方法是可寻的,只不过有上面的前提而已。

那怎么办,一改源码。【这个不足为奇,毕竟ligerUI是个人的作品,不过即使有小 bug,还是蛮令人佩服的哈】

二:另谋出路。

哦,对了,既然保留上次的问题,那就随他所愿,只要用户看不见就行。

ok,目的有了,寻方法,清空的方法。既然data=null 不可以,肯定有有一种表面清除的方法。

虽然api中没有此方法,不过通过查找其源码,嘻嘻,发现喽**clearContent()

OK,目的到底了。过程如下:

success : function(data, msg) {
if(data.length==0){
loginname.clearContent();
}else{
liger.get("realname").setData(data);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ligerui Jquery JSP