起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1623|回复: 5

[结贴] BUG!动态产生input组件有BUG,详情入内

[复制链接]

64

主题

471

帖子

1127

积分

金牌会员

Rank: 6Rank: 6

积分
1127
发表于 2016-9-18 17:49:59 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
示例代码:/UI2/system/components/justep/input/demo/input.w
下面dynamicCreate按钮实际产生的应该是日期输入框,但却显示为文本框。事实上任何和绑定有关,数据类型有关的判断处理都没有做,而且那样的输入框,只能输入数据,根本无法获取数据,换句话说,根本就没法用。

之前我把这种动态产生组件的代码放在var Model = function() {}函数里执行,一切正常。可是这个函数里执行又遇到了一个BUG,那就是this.getRootNode()返回null,结果打开多个页面,名字一样就去串门了。
然后我移动到Model_Load事件中处理,结果产生的组件都是不能用的。

最后我找了一个折衷方法,还是在var Model = function() {}函数里处理,使用this.getContext().model.__cid来区分不同的页面,虽然达到了目的,但这难易度是不是太高了点呢?建议官方将这个组件动态产生的BUG给处理下,这样在运行时的任意时刻都可以添加了。

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2016-9-18 18:44:35 | 显示全部楼层
Model_Load事件中处理,结果产生的组件都是不能用的具体怎么不能用?
设置日期
var parentNode = this.getElementByXid("content2");
                var option = {
                        parentNode : parentNode,
                        xid : 'input2',
                        dataType : 'DateTime',
                };
                new input(option);

远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

64

主题

471

帖子

1127

积分

金牌会员

Rank: 6Rank: 6

积分
1127
 楼主| 发表于 2016-9-18 19:08:05 | 显示全部楼层
jishuang 发表于 2016-9-18 18:44
Model_Load事件中处理,结果产生的组件都是不能用的具体怎么不能用?
设置日期
var parentNode = this.getE ...

是不是不能设置ID?我发现那个parentNode我设置了ID属性后,就不正常了(即使不冲突),如果不设置ID就正常。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2016-9-19 10:26:12 | 显示全部楼层
平台默认推荐的就不是设置id,要设置xid啊,通过xid去操作
平台默认是单页默认用id,如果打开的多个功能中都有同样的id就会冲突
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

64

主题

471

帖子

1127

积分

金牌会员

Rank: 6Rank: 6

积分
1127
 楼主| 发表于 2016-9-19 13:58:14 | 显示全部楼层
本帖最后由 qldsrx 于 2016-9-19 14:00 编辑
jishuang 发表于 2016-9-19 10:26
平台默认推荐的就不是设置id,要设置xid啊,通过xid去操作
平台默认是单页默认用id,如果打开的多个功能中 ...

我明白你的意思,那么我需要纠正你几个看法:
1、html的ID是允许重复的,重复的场合,控制台也不会报错,使用document.getElementById()获取时会得到第一个。
2、我的ID是在局部范围内检索的,因为限制了搜索范围,所以用起来不会有问题,即使外部有相同ID存在。
3、平台推荐XID是没错,不过我是用juqery进行DOM操作的,xid没有id用起来方便,即使我设置xid来检索,对于jquery来说,还是必须指定搜索范围,否则全局有相同的xid一样会找到多个。
4、即使设置了ID,也没理由导致不能在运行时产生组件,事实上,手动设置过ID后的dom元素,没法通过model的this.getElementByXid方法获取到,虽然xid也设置过了,但那个方法返回的是null,有重复的场合,至少是返回第一个吧,这里算不算BUG?
5、即使不设置ID,运行时你们也会自动设置一个随机ID,为啥你们能运行时给一个没意义的ID,就不允许我在编程时给一个有意义的ID?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2016-9-19 15:58:43 | 显示全部楼层
平台在处理xid的时候会检查有id的会就不会用xid生成id,那么就用xid去处理的API就不能用
如果能确保id不会重复,那么可以自己用id去处理,在获取元素等的时候也需要自己用id去处理,不能再用xid去处理
也就是说xid和id不能同时用
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-4 14:20 , Processed in 0.063988 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表