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 相关文章推荐
jquery 图片预加载 自动等比例缩放插件
Dec 25 Javascript
深入理解JavaScript系列(43):设计模式之状态模式详解
Mar 04 Javascript
js实现带按钮的上下滚动效果
May 12 Javascript
node.js平台下的mysql数据库配置及连接
Mar 31 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
Apr 27 Javascript
vue 中directive功能的简单实现
Jan 05 Javascript
vue.js 使用axios实现下载功能的示例
Mar 05 Javascript
关于vue面试题汇总
Mar 20 Javascript
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
Dec 19 Javascript
微信小程序开发实现的IP地址查询功能示例
Mar 28 Javascript
如何基于js判断浏览器版本
Feb 20 Javascript
在pycharm中开发vue的方法步骤
Mar 04 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
生成sessionid和随机密码的例子
2006/10/09 PHP
php array_flip() 删除数组重复元素
2009/01/14 PHP
PHP判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
PHP获取数组最大值下标的方法
2015/05/12 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
Laravel程序架构设计思路之使用动作类
2018/06/07 PHP
CI框架简单分页类用法示例
2020/06/06 PHP
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
解决JQeury显示内容没有边距内容紧挨着浏览器边线
2013/12/20 Javascript
AngularJS基础 ng-copy 指令实例代码
2016/08/01 Javascript
JavaScript实现大图轮播效果
2017/01/11 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
JS中的多态实例详解
2017/10/15 Javascript
基于angular-utils-ui-breadcrumbs使用心得(分享)
2017/11/03 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
2018/02/03 Javascript
vue-cli 首屏加载优化问题
2018/11/06 Javascript
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
Vue动态生成表格的行和列
2019/07/18 Javascript
vue倒计时刷新页面不会从头开始的解决方法
2020/03/03 Javascript
js、jquery实现列表模糊搜索功能过程解析
2020/03/27 jQuery
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
2020/07/17 Javascript
JavaScript如何实现监听键盘输入和鼠标监点击
2020/07/20 Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
2020/07/20 Javascript
[02:20]DOTA2中文配音宣传片
2013/05/22 DOTA
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
2019/04/26 Python
python 在某.py文件中调用其他.py内的函数的方法
2019/06/25 Python
Django Docker容器化部署之Django-Docker本地部署
2019/10/09 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
2020/09/09 Python
最新pycharm安装教程
2020/11/18 Python
微信浏览器左上角返回按钮拦截功能
2017/11/21 HTML / CSS
办公室主任岗位承诺书
2014/05/29 职场文书
大学毕业生求职自荐书
2014/06/05 职场文书
出国留学导师推荐信
2015/03/26 职场文书
java设计模式--七大原则详解
2021/07/21 Java/Android