所有控件 绑定点击事件显示下拉 时间 树形 多选框等

楼主
我是社区第93017位番薯,欢迎点我头像关注我哦~
    背景:
       由于项目中有很多的下拉控件,日期控件,树形控件,多选控件等,在论坛中发现解决方案都是对每一个控件进行单独的事件绑定,如果存在太多这样的控件
      每次都设置的话会导致很多重复的工作,so 我们需要一次对所有这样的控件进行一次绑定即可:

      实现原理:
           在表单初始化完成后,进行参数绑定事件
        eg:

    事件如下:

    由于本项目的集成是用ifream集成,因此调用的是父窗口的函数
    window.parent.initParam(this);
    如果不用ifream 可以自定义js文件,然后引入到当前的报表页面:
   推荐:把js引入到当前的报表页面,原因:可能当前的报表以后会被其他的报表引用,这样就会出现找不到window.parent.initParam 函数的形式


initParam  函数如下:
//自定义初始化控件后点击文本框会弹出对应的显示框
function initParam(obj){
        $.each(obj.options.form.name_widgets,function(i,item){   
            //如果是标签控件不做处理,如果是时间类型,下拉类型,多选框,树形结构就设置点击当前的文本框事件
             if (item.options.type !=='label' && (item.options.type==='combo' || item.options.type==='datetime' || item.options.type === 'tagcombocheckbox'|| item.options.type === 'treecombobox')) {
                            //设置点击事件
                            var self = item;
                            self.options.name4Empty = "全部选择"  ;//下拉框替换默认的 不选
                        $('input',item.element).click(function(){  
                            if(self.$view.css('display')=='none'){  
                                self.onTriggerClick();  
                            }  
                        });
                    }   
                });
}      


对于表单页面还需要设置body加载完成后的事件,因为body中也可能有下拉框等这样的控件
   表单页面的组成部分:

  

选中后选择事件

然后把上面的js放进去即可。

最后效果:



编辑于 2017-9-15 16:54  
编辑于 2017-9-15 16:55  
分享扩散:
参与人数 +1 F币 +34 理由
兔子酱 + 34 感谢参与精华帖奖励计划!

查看全部评分

来自 6#
发表于 2017-9-27 11:33:45
根据帆软论坛运营委员最终评分,本篇帖子综合得分34分,具体参见:帆软论坛精华帖奖励计划
恭喜@ zchzch,同时也希望更多的番薯积极参与精华帖奖励计划!
沙发
发表于 2017-9-15 17:15:29
又学到了一手
板凳
发表于 2017-9-16 07:57:21
地板
发表于 2017-9-18 09:44:57
学习借鉴
5楼
发表于 2017-9-18 13:40:12
已提名精华帖,待论坛运营委员会评分后可评为精华帖。帆软论坛精华帖奖励计划http://bbs.fanruan.com/thread-91079-1-1.html
7楼
发表于 2017-9-27 11:40:52
橙子君 发表于 2017-9-18 13:40
已提名精华帖,待论坛运营委员会评分后可评为精华帖。帆软论坛精华帖奖励计划http://bbs.fanruan.com/threa ...

8楼
发表于 2017-10-17 13:55:59
学习一下!
9楼
发表于 2017-11-24 11:32:33
捧场王来啦
10楼
发表于 2017-11-24 11:33:46
棒棒棒
11楼
发表于 2017-12-7 22:33:03
6666666
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表