您好,欢迎访问一九零五行业门户网

为Jquery EasyUI 组件加上清除功能实例分享

本文主要为大家带来一篇为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组件中的datagrid结果集清空方法_jquery
jquery easyui 中使用datetimebox 取两个日期间相隔天数的方法
jquery easyui如何实现格式化列详解
以上就是为jquery easyui 组件加上清除功能实例分享的详细内容。
其它类似信息

推荐信息