jquery插件制作 -- 3.表单验证

简介:   今天的内容是关于表单验证插件的制作。表单验证控件实现的主要功能是,当表单提交的时候检查必填项是否正确填写,同时根据需要验证输入信息是否符合规范。   先下页面代码: DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.

  今天的内容是关于表单验证插件的制作。表单验证控件实现的主要功能是,当表单提交的时候检查必填项是否正确填写,同时根据需要验证输入信息是否符合规范。

  先下页面代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript" src="Scripts/jquery-1.8.0.min.js"></script>
    <script type="text/javascript" src="Scripts/jquery.formCheck.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $('.formToCheck').formCheck();
        });
    </script>
    <style type="text/css">
        form
        {
            width: 300px;
        }
        label
        {
            position: absolute;
        }
        input:not(.submit), textarea
        {
            margin-left: 100px;
            width: 200px;
        }
        .submit
        {
            margin-left: 100px;
        }
        .error
        {
            border:1px solid red;
        }
    </style>
</head>
<body>
    <form class="formToCheck" id="formToCheck" method="get" action="#">
    <fieldset>
        <legend>a simple form</legend>
        <p>
            <label for="fname">
                * first name</label>
            <input id="fname" class="required" name="fname"  />
        </p>
        <p>
            <label for="lname">
                last name</label>
            <input id="lname" name="lname" />
        </p>
        <p>
            <label for="email">
                * email</label>
            <input id="email" name="email" class="required email" />
        </p>
        <p>
            <label for="comment">
                * comment</label>
            <input id="comment" name="comment" class="required" />
        </p>
        <p>
            <label for="email">
                * email</label>
            <input id="submit" type="submit" class="submit" value="submit" />
        </p>
    </fieldset>
    </form>
</body>
</html>

 

  我们定义了一个form,定义了几个输入框,请注意class属性,有的是class="required",说明该项是必填项;class="required email"说明该项是必填项,并且需要符合email格式。没有定义class的输入框不做验证。下面来看插件代码:

(function ($) {
    $.fn.formCheck = function (options) {
        var defaults = {
            errorClass: 'error'
        };
        var options = $.extend(defaults, options);

        return this.each(function () {
            var form = $(this);
            //如果不是from表单,直接返回不做任何操作
            if (!form.is('form')) {
                return;
            }
            //只有当form表单提交的时候,我们才做验证
            form.submit(function () {
                var errorFlag = false;

                //获取表单里面所有的input控件,逐一进行处理
                $(':input', this).each(function (index, item) {
                    //获取当前对象
                    var element = $(item);
                    //移除样式
                    element.removeClass(options.errorClass);

                    //必填项验证,value值不能为空
                    if (element.hasClass('required') && element.val().length == 0) {
                        errorFlag = true;
                        element.addClass(options.errorClass);
                    }
                    //数字验证
                    if (element.hasClass('number') && element.val().length > 0 && !/^\d+$/.test(element.val())) {
                        errorFlag = true;
                        element.addClass(options.errorClass);
                    }
                    //email验证
                    if (element.hasClass('email') && element.val().length > 0 
                && !/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/.test(element.val())) { errorFlag = true; element.addClass(options.errorClass); } //验证数字长度 var num = this.className.match(/min(\d+)/i); if (num && element.val().length < num[1]) { errorFlag = true; element.addClass(options.errorClass); } }); return !errorFlag; }); }); }; })(jQuery);

 

  demo下载地址:jQuery.plugin.formcheck.zip

  今天的课程就到此为止了。

目录
相关文章
|
2月前
|
JavaScript
jQuery 树型菜单插件(Treeview)
jQuery 树型菜单插件(Treeview)
63 2
|
11天前
|
JavaScript
jQuery实现弹窗消息提示特效插件
这是一个简单的jQuery弹窗消息提示插件,用于网站用户操作提示。包含默认、成功、失败、警告、提示弹窗等不同形式弹出的消息提示效果,轻量简单,欢迎下载!
24 4
|
6月前
|
设计模式 JavaScript 前端开发
必知的技术知识:jQuery插件开发精品教程,让你的jQuery提升一个台阶
必知的技术知识:jQuery插件开发精品教程,让你的jQuery提升一个台阶
65 1
|
2月前
|
JavaScript 前端开发
jQuery Growl 插件(消息提醒)
jQuery Growl 插件(消息提醒)
55 4
jQuery Growl 插件(消息提醒)
|
2月前
|
存储 JSON JavaScript
jQuery Cookie 插件
jQuery Cookie 插件
48 4
jQuery Cookie 插件
|
1月前
|
JavaScript 定位技术
jQuery鹰眼视图小地图定位预览插件minimap.js
这是一个jQuery小地图定位预览视图,默认左侧是页面主要内容,minimap.js的好处就是在它的右侧形成一个快速定位通道,产生一个缩小版的页面,即预览效果,可以点击并快速定位到页面的某个位置。简单实用,欢迎下载!
31 0
|
2月前
|
移动开发 JSON 数据可视化
精选八款包括可视化CMS,jquery可视化表单,vue可视化拖拉,react可视化源码
精选八款包括可视化CMS,jquery可视化表单,vue可视化拖拉,react可视化源码
54 0
|
4月前
|
前端开发 JavaScript Java
SpringBoot+JQuery+Ajax实现表单数据传输和单文件或多文件的上传
关于如何在SpringBoot项目中结合JQuery和Ajax实现表单数据的传输以及单文件或多文件上传的教程。文章提供了完整的前后端示例代码,包括项目的`pom.xml`依赖配置、SpringBoot的启动类`App.java`、静态资源配置`ResourceConfig.java`、配置文件`application.yml`、前端HTML页面(单文件上传和多文件上传加表单内容)以及后端控制器`UserController.java`。文章最后展示了运行结果的截图。
197 0
SpringBoot+JQuery+Ajax实现表单数据传输和单文件或多文件的上传
|
4月前
|
Devops 持续交付 测试技术
JSF遇上DevOps:开发流程将迎巨变?一篇文章带你领略高效协同的魅力!
【8月更文挑战第31天】本文探讨了如何在JavaServer Faces(JSF)开发中融入DevOps文化,通过持续集成与部署、自动化测试、监控与日志记录及反馈机制,提升软件交付速度与质量。文中详细介绍了使用Jenkins进行自动化部署、JUnit与Selenium进行自动化测试、ELK Stack进行日志监控的具体方法,并强调了持续改进的重要性。
40 0
|
4月前
|
JavaScript 前端开发 数据安全/隐私保护
Validform jQuery插件详解
【8月更文挑战第21天】