热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为JQueryEasyUI表单组件加上“清除”功能

转载自:https:www.cnblogs.comrulianp6690326.html1、背景在使用EasyUI各表单组件时,尤其是使用ComboBo

转载自:https://www.cnblogs.com/rulian/p/6690326.html

 

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)。

 

 

4、效果展示

(1)有值时的情况(其中 类型 是数据列表下拉框)

 

(2)无值时的情况

 

 

5、进一步扩展

增加自动添加“清除”功能的函数,省去每个组件手动添加的麻烦。

(1)自动添加函数定义

//自动填加清除功能 (组件需要增加 addClear属性 )
function autoAddClear()
{var arr = $("input[addClear]");for(var i=0;i}

 

(2)使用时,各组件上添加 addClear 属性。

 

 

(3)使用自动添加 

$(function(){autoAddClear(); //为各组件自动填加‘清除’功能(组件需要增加 addClear属性 )addClear4TextBox("#name",nameChangeDo); //对于需要使用OnChange事件的组件,单独手动填加

 

转载自:https://www.cnblogs.com/rulian/p/6690326.html


推荐阅读
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • angular.element使用方法及总结
    2019独角兽企业重金招聘Python工程师标准在线查询:http:each.sinaapp.comangularapielement.html使用方法 ... [详细]
  • $(function(){$(#search_button).button({icons:{primary:ui-icon-search,},});$(#reg).dialog({ ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • 本文介绍了如何在Jquery中通过元素的样式值获取元素,并将其赋值给一个变量。提供了5种解决方案供参考。 ... [详细]
  • 本文介绍了使用jQuery实现图片预加载和等比例缩放的方法,同时提供了演示和相关代码。该方法可以重置图片的宽度和高度,并使图片在水平和垂直方向上居中显示。 ... [详细]
  • 获取ul中第一个li元素的五种方法和多个ul中第一个li元素的四种方法
    本文介绍了获取ul中第一个li元素的五种方法和多个ul中第一个li元素的四种方法,包括使用jQuery的选择器和遍历方法。通过这些方法,可以方便地获取到所需的元素,并进行相应的操作。 ... [详细]
  • Material Design Lite ,简洁惊艳的前端工具箱。
    2019独角兽企业重金招聘Python工程师标准MaterialDesignLite简介本文主要介绍MaterialDesign设计语言的HTMLCSSJS部分实现。对应每一 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
author-avatar
手机用户2502926207
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有