jQuery EasyUI 组件加上“清除”功能实例详解
1、背景
在使用 easyui 各表单组件时,尤其是使用 combobox(下拉列表框)、datebox(日期输入框)、datetimebox(日期时间输入框)这三个组件时,经常有这样的需求,下拉框或日期只允许选择、不允许手动输入,这时只要在组件选项中加入 editable:false 就可以实现,但有一个问题,就是:一旦选择了,没办法清空。经过研究,可以用一个变通的解决方案:给组件加上一个“清除”按钮,当有值是,显示按钮,点击按钮可清空值,当无值是,隐藏按钮。
2、函数定义
定义js方法,为 easyui 中一些常用组件添加'清除'按钮及功能。共计6个:
/* * 为‘文本框'列表添加‘清除'图标 * 该实现使用了 onchange 事件,如果用户需要该事件,可传入自定义函数,会自动回调 。 */ function addclear4textbox(theid,onchangefun) { var theobj = $(theid); //根据当前值,确定是否显示清除图标 var showicon = function(){ var icon = theobj.textbox('geticon',0); if (theobj.textbox('getvalue')){ icon.css('visibility','visible'); } else { icon.css('visibility','hidden'); } }; theobj.textbox({ //添加清除图标 icons:[{ iconcls:'icon-clear', handler: function(e){ theobj.textbox('clear'); } }], //值改变时,根据值,确定是否显示清除图标 onchange:function(){ if(onchangefun) { onchangefun(); } showicon(); } }); //根据目前值,确定是否显示清除图标 showicon(); } /* * 为‘下拉列表框'添加‘清除'图标 * 该实现使用了 onchange 事件,如果用户需要该事件,可传入自定义函数,会自动回调 。 */ function addclear4combobox(theid,onchangefun) { var theobj = $(theid); //根据当前值,确定是否显示清除图标 var showicon = function(){ var icon = theobj.combobox('geticon',0); if (theobj.combobox('getvalue')){ icon.css('visibility','visible'); } else { icon.css('visibility','hidden'); } }; theobj.combobox({ //添加清除图标 icons:[{ iconcls:'icon-clear', handler: function(e){ theobj.combobox('clear'); } }], //值改变时,根据值,确定是否显示清除图标 onchange:function(){ if(onchangefun) { onchangefun(); } showicon(); } }); //初始化确认图标显示 showicon(); } /* * 为‘数据表格下拉框'添加‘清除'图标 * 该实现使用了 onchange 事件,如果用户需要该事件,可传入自定义函数,会自动回调 。 */ function addclear4combogrid(theid,onchangefun) { var theobj = $(theid); //根据当前值,确定是否显示清除图标 var showicon = function(){ var icon = theobj.combogrid('geticon',0); if (theobj.combogrid('getvalue')){ icon.css('visibility','visible'); } else { icon.css('visibility','hidden'); } }; theobj.combogrid({ //添加清除图标 icons:[{ iconcls:'icon-clear', handler: function(e){ theobj.combogrid('clear'); } }], //值改变时,根据值,确定是否显示清除图标 onchange:function(){ if(onchangefun) { onchangefun(); } showicon(); } }); //初始化确认图标显示 showicon(); } /* * 为‘数值输入框'添加‘清除'图标 * 该实现使用了 onchange 事件,如果用户需要该事件,可传入自定义函数,会自动回调 。 */ function addclear4numberbox(theid,onchangefun) { var theobj = $(theid); //根据当前值,确定是否显示清除图标 var showicon = function(){ var icon = theobj.numberbox('geticon',0); if (theobj.numberbox('getvalue')){ icon.css('visibility','visible'); } else { icon.css('visibility','hidden'); } }; theobj.numberbox({ //添加清除图标 icons:[{ iconcls:'icon-clear', handler: function(e){ theobj.numberbox('clear'); } }], //值改变时,根据值,确定是否显示清除图标 onchange:function(){ if(onchangefun) { onchangefun(); } showicon(); } }); //初始化确认图标显示 showicon(); } /* * 为‘日期选择框'添加‘清除'图标 * 该实现使用了 onchange 事件,如果用户需要该事件,可传入自定义函数,会自动回调 。 */ function addclear4datebox(theid,onchangefun) { var theobj = $(theid); //根据当前值,确定是否显示清除图标 var showicon = function(){ var icon = theobj.datebox('geticon',0); if (theobj.datebox('getvalue')){ icon.css('visibility','visible'); } else { icon.css('visibility','hidden'); } }; theobj.datebox({ //添加清除图标 icons:[{ iconcls:'icon-clear', handler: function(e){ theobj.datebox('clear'); } }], //值改变时,根据值,确定是否显示清除图标 onchange:function(){ if(onchangefun) { onchangefun(); } showicon(); } }); //初始化确认图标显示 showicon(); } /* * 为‘日期时间选择框'添加‘清除'图标 * 该实现使用了 onchange 事件,如果用户需要该事件,可传入自定义函数,会自动回调 。 */ function addclear4datetimebox(theid,onchangefun) { var theobj = $(theid); //根据当前值,确定是否显示清除图标 var showicon = function(){ var icon = theobj.datetimebox('geticon',0); if (theobj.datetimebox('getvalue')){ icon.css('visibility','visible'); } else { icon.css('visibility','hidden'); } }; theobj.datetimebox({ //添加清除图标 icons:[{ iconcls:'icon-clear', handler: function(e){ theobj.datetimebox('clear'); } }], //值改变时,根据值,确定是否显示清除图标 onchange:function(){ if(onchangefun) { onchangefun(); } showicon(); } }); //初始化确认图标显示 showicon(); }
3、使用
用法格式如下:
(1)addclear4textbox("#name",namechangedo); //文本框,同时传入了回调函数
(2)addclear4combobox("#state\\.id"); //下拉列表框
(3)addclear4combogrid("#type\\.id"); //数据表格下拉框
(4)addclear4numberbox("#intnum2"); //数值输入框
(5)addclear4datebox("#thedate2"); //日期选择框
(6)addclear4datetimebox("#thetime2"); //日期选择框
注:函数的实现使用了 onchange 事件,如果需要使用该事件执行某些操作,可传入自定义函数,会自动回调 ,参见(1)。
<script> //名称改变时执行的一些操作。(演示清除操作回调) var namechangedo = function(){ //alert("改变了..."); } $(function(){ addclear4textbox("#code"); addclear4textbox("#name",namechangedo); addclear4combobox("#city"); addclear4combobox("#state\\.id"); addclear4combogrid("#type\\.id"); addclear4combobox("#hobby"); addclear4numberbox("#intnum2"); addclear4numberbox("#doublenum1"); addclear4numberbox("#doublenum2"); addclear4datebox("#thedate2"); addclear4datetimebox("#thetime2"); addclear4textbox("#remark"); }); </script>
4、效果展示
(1)有值时的情况(其中 类型 是数据列表下拉框)
(2)无值时的情况
以上所述是小编给大家介绍的jquery easyui 组件加上“清除”功能实例详解,希望对大家有所帮助
上一篇: 燕菜,都是由那些材料组成的?
推荐阅读
-
jQuery EasyUI 组件加上“清除”功能实例详解
-
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
-
为Jquery EasyUI 组件加上清除功能的方法(详解)
-
为Jquery EasyUI 组件加上清除功能实例分享
-
为JQuery EasyUI 表单组件增加焦点切换功能实例分享
-
jQuery EasyUI 组件加上“清除”功能实例详解
-
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
-
为Jquery EasyUI 组件加上清除功能的方法(详解)
-
为Jquery EasyUI 组件加上清除功能实例分享
-
为JQuery EasyUI 表单组件增加焦点切换功能实例分享