jQuery EasyUI 组件加上“清除”功能实例详解


Posted in jQuery onApril 11, 2017

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)有值时的情况(其中 类型 是数据列表下拉框)

jQuery EasyUI 组件加上“清除”功能实例详解

(2)无值时的情况

jQuery EasyUI 组件加上“清除”功能实例详解

以上所述是小编给大家介绍的jQuery EasyUI 组件加上“清除”功能实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

jQuery 相关文章推荐
jQuery Validate 无法验证 chosen-select元素的解决方法
May 17 jQuery
jQuery复合事件结合toggle()方法的用法示例
Jun 10 jQuery
jQuery常见面试题之DOM操作详析
Jul 05 jQuery
使用jQuery实现两个div中按钮互换位置的实例代码
Sep 21 jQuery
jQuery.Sumoselect插件实现下拉复选框效果
Nov 09 jQuery
jquery.param()实现数组或对象的序列化方法
Oct 08 jQuery
jQuery实现ajax的嵌套请求案例分析
Feb 16 jQuery
浅谈JS和jQuery的区别
Mar 27 jQuery
Jquery动态列功能完整实例
Aug 30 jQuery
jquery实现直播视频弹幕效果
Feb 25 jQuery
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
May 29 jQuery
Jquery+javascript实现支付网页数字键盘
Dec 21 jQuery
vue中如何引入jQuery和Bootstrap
Apr 10 #jQuery
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
Apr 10 #jQuery
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
Apr 10 #jQuery
jQuery EasyUI之验证框validatebox实例详解
Apr 10 #jQuery
Django1.7+JQuery+Ajax验证用户注册集成小例子
Apr 08 #jQuery
利用jQuery解析获取JSON数据
Apr 08 #jQuery
JavaScript使用链式方法封装jQuery中CSS()方法示例
Apr 07 #jQuery
You might like
由php if 想到的些问题
2008/03/22 PHP
php入门之连接mysql数据库的一个类
2012/04/21 PHP
使用 PHPMAILER 发送邮件实例应用
2012/11/07 PHP
基于php 随机数的深入理解
2013/06/05 PHP
JavaScript 动态生成方法的例子
2009/07/22 Javascript
Extjs TriggerField在弹出窗口显示不出问题的解决方法
2010/01/08 Javascript
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
2014/05/22 Javascript
JavaScript实现16进制颜色值转RGB的方法
2015/02/09 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
bootstrap学习笔记之初识bootstrap
2016/06/21 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
2018/05/13 Javascript
vue.js实现带日期星期的数字时钟功能示例
2018/08/28 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
Vue打包后访问静态资源路径问题
2019/11/08 Javascript
解决Layui数据表格显示无数据提示的问题
2019/11/14 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
微信小程序后端实现授权登录
2020/02/24 Javascript
vue路由跳转传递参数的方式总结
2020/05/10 Javascript
ant design vue 表格table 默认勾选几项的操作
2020/10/31 Javascript
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
Python中的列表知识点汇总
2015/04/14 Python
python操作字典类型的常用方法(推荐)
2016/05/16 Python
Python操作json的方法实例分析
2018/12/06 Python
python 操作hive pyhs2方式
2019/12/21 Python
Pytorch在NLP中的简单应用详解
2020/01/08 Python
Python集合操作方法详解
2020/02/09 Python
Python实现在Windows平台修改文件属性
2020/03/05 Python
小学生学习感言
2014/03/10 职场文书
给校长的建议书300字
2014/05/16 职场文书
规范化管理年活动总结
2014/08/29 职场文书
golang 比较浮点数的大小方式
2021/05/02 Golang
python实现自定义日志的具体方法
2021/05/28 Python