jquery.form.js用法之清空form的方法


Posted in Javascript onMarch 07, 2014

本段代码摘取自jquery.form.js中,由于觉得该方法的使用性非常强,同时也可独立拿出来使用。
该段代码言简意赅可以很好的作为学习参考。

/**
 * Clears the form data. Takes the following actions on the form's input fields:
 * - input text fields will have their 'value' property set to the empty string
 * - select elements will have their 'selectedIndex' property set to -1
 * - checkbox and radio inputs will have their 'checked' property set to false
 * - inputs of type submit, button, reset, and hidden will *not* be effected
 * - button elements will *not* be effected
 */
$.fn.clearForm = function(includeHidden) {
    return this.each(function() {
        $('input,select,textarea', this).clearFields(includeHidden);   //this表示设置上下文环境,有多个表单时只作用调用的表单
    });
};
$.fn.clearFields = $.fn.clearInputs = function(includeHidden) {
    var re = /^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i; // 'hidden' is not in this list
    return this.each(function() {
        var t = this.type, tag = this.tagName.toLowerCase();
        if (re.test(t) || tag == 'textarea') {
            this.value = '';
        }
        else if (t == 'checkbox' || t == 'radio') {
            this.checked = false;
        }
        else if (tag == 'select') {
            this.selectedIndex = -1;
        } 
        else if (t == "file") {
            if (/MSIE/.test(navigator.userAgent)) {
                 $(this).replaceWith($(this).clone(true));
            } else {
                 $(this).val('');
            }
       }
        else if (includeHidden) {
            // includeHidden can be the value true, or it can be a selector string
            // indicating a special test; for example:
            // $('#myForm').clearForm('.special:hidden')
            // the above would clean hidden inputs that have the class of 'special'
            if ( (includeHidden === true && /hidden/.test(t)) ||
                 (typeof includeHidden == 'string' && $(this).is(includeHidden)) ) {
                this.value = '';
            }
        }
    });
};
Javascript 相关文章推荐
Javascript Global对象
Aug 13 Javascript
javascript中的throttle和debounce浅析
Jun 06 Javascript
JavaScript如何动态创建table表格
Aug 02 Javascript
Jquery使用小技巧汇总
Dec 29 Javascript
javascript插件开发的一些感想和心得
Feb 28 Javascript
Node.js编写爬虫的基本思路及抓取百度图片的实例分享
Mar 12 Javascript
Bootstrap图片轮播组件使用实例解析
Jun 30 Javascript
JavaScript使用readAsDataURL读取图像文件
May 10 Javascript
element ui table(表格)实现点击一行展开功能
Dec 04 Javascript
jQuery实现动态加载(按需加载)javascript文件的方法分析
May 31 jQuery
微信小程序简单的canvas裁剪图片功能详解
Jul 12 Javascript
js实现直播点击飘心效果
Aug 19 Javascript
jquery设置按钮停顿3秒不可用
Mar 07 #Javascript
jquery 实现两级导航菜单附效果图
Mar 07 #Javascript
document.addEventListener使用介绍
Mar 07 #Javascript
开发中可能会用到的jQuery小技巧
Mar 07 #Javascript
javascript匿名函数应用示例介绍
Mar 07 #Javascript
js登录弹出层特效
Mar 07 #Javascript
JavaScript通过正则表达式实现表单验证电话号码
Mar 07 #Javascript
You might like
linux php mysql数据库备份实现代码
2009/03/10 PHP
从康盛产品(discuz)提取出来的模板类
2011/06/28 PHP
基于php常用函数总结(数组,字符串,时间,文件操作)
2013/06/27 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
2019/12/04 PHP
Web前端设计模式  制作漂亮的弹出层
2010/10/29 Javascript
node.js中的url.resolve方法使用说明
2014/12/10 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
2015/09/27 Javascript
AngularJS 过滤器的简单实例
2016/07/27 Javascript
Angularjs 创建可复用组件实例代码
2016/10/09 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
ES6正则表达式扩展笔记
2017/07/25 Javascript
vue router学习之动态路由和嵌套路由详解
2017/09/21 Javascript
从vue基础开始创建一个简单的增删改查的实例代码(推荐)
2018/02/11 Javascript
three.js 将图片马赛克化的示例代码
2020/07/31 Javascript
JavaScript数组排序的六种常见算法总结
2020/08/18 Javascript
vue3.0自定义指令(drectives)知识点总结
2020/12/27 Vue.js
[33:39]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第二局
2016/02/27 DOTA
web.py在模板中输出美元符号的方法
2014/08/26 Python
python实现将html表格转换成CSV文件的方法
2015/06/28 Python
Python字典及字典基本操作方法详解
2018/01/30 Python
Linux下安装python3.6和第三方库的教程详解
2018/11/09 Python
python实现几种归一化方法(Normalization Method)
2019/07/31 Python
解决Python设置函数调用超时,进程卡住的问题
2019/08/08 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
python在地图上画比例的实例详解
2020/11/13 Python
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
机电工程专业应届生求职信
2013/10/03 职场文书
法律系毕业生求职信
2014/05/28 职场文书
小组口号大全
2014/06/09 职场文书
销售辞职信范文
2015/03/02 职场文书
学校德育工作总结2015
2015/05/11 职场文书
2016大学军训通讯稿
2015/11/25 职场文书
Mysql 设置boolean类型的操作
2021/06/04 MySQL
解决ObjectMapper.convertValue() 遇到的一些问题
2021/06/30 Java/Android