easyUI的combobox设置隐藏和显示

今天遇到一个需求,需要在combobox选择不同选项时,分别切换另一个控件为text或者combobox.

当时想了各种办法,想将combobx和text切换隐藏,但是都没得到自己想要的效果.最终还是在combobx上加了个div,用来控制div的显示和隐藏,打到自己想要的效果.

不过需要注意的是:当切换到text或其他非combobox时,将combobox的值要设置为空.

如下图所示:

原始状态:

切换为text时效果如图:

切换到combobox时,效果如图:

 

下面贴出控件显示的代码

<!-- 用来切换显示文本 -->
            <th id="th${id }">
            </th>
            <td>
                <!-- 显示和隐藏 combobox -->
                <div id="hjlxdiv${id }" style="width: auto; display: none;" >
                   <input name="hjlx${id }" id="hjlx${id }" class="easyui-combobox" style="width: 152px;"  data-options="valueField:'itemid',textField:'itemname',url:'warning.lx?method=viewSysObjectById&typeid=11030'" />
                </div>
                <!-- 显示和隐藏text -->
                <input type="text" name="yjglh${id }" id="yjglh${id }" class="easyui-validatebox" style="width:152px;display:none;"/>
            </td>

 

下面是操作的js:

/*
        ${id }是Spring从后台传过来的id号,用来区分不同的控件id,不需要的无视就行了
    */
     $("#pccs"+${id }).combobox({ 
         //调用combobox的onChange方法
        onChange: function ddlchange(obj)
        {
            var id = ${id };
            var hjlx= $("#hjlx"+id);
            var th1=  $("#th"+id);
            //获取text文本控件和combobox的div控件
            var yjglh= document.getElementById("yjglh" + id);
            var div = document.getElementById("hjlxdiv" + id);
            if(obj)
            {
                if(obj=="1")
                {
                    //当选择"忽略"时,将combobox的值设置为空 ,控件隐藏掉   th和text设置为显示
                    hjlx.combobox('setValue','');
                    th1.text("依据关联号:");
                    div.style.display='none';
                    yjglh.style.display='block';
                }
                else if(obj=="3")
                {
                    //当选择"函调"时,将th的值切换,combobx控件设置为显示,text控件隐藏.
                    th1.text("函件类型:");
                    div.style.display='block';
                    yjglh.style.display='none';
                }
                else
                {
                    //将th,combobox,text控件都隐藏起来
                    var a = hjlx.combobox('setValue','');
                    th1.text("");
                    div.style.display='none';
                    yjglh.style.display='none';
                }
            }
        }
    });

 

posted @ 2014-10-31 12:13  Cilimer  阅读(27107)  评论(0编辑  收藏  举报