为了账号安全,请及时绑定邮箱和手机立即绑定

javascript简易表单验证插件

标签:
JavaScript

javascript简易表单验证插件:
图片描述
1、dom结构示例如下:

<div class="frame-form">
    <input data-check="empty" class="text-form" type="email" placeholder="姓名">
    <input data-check="tel" class="text-form" type="text" placeholder="电话">
    <input data-check="email" class="text-form" type="text" placeholder="邮箱">
    <input data-check="empty" class="text-form" type="text" placeholder="公司">
    <a href="#" class="submit">提交</a>
</div>

2、调用方式

<script>
    $(function(){
        var form=new CheckObject("frame-form");
            $(".submit").click(function(){
                form.checkTel().checkEmail().checkEmpty();
            });
    })
</script>

3、主要的js代码:

(function(){
    var CheckObject=function(rang){
        this.rang=$(rang);
    }
    CheckObject.prototype={
        checkEmail:function(){
            //验证邮箱
            var email=this.rang.find("[data-check='email']").val();

            if(!( /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/.test(email))){
                console.log("邮箱错误");
            }
            return this;
        },
        checkTel:function(){
            //验证电话
            var phone=this.rang.find("[data-check='tel']").val();
            if(!(/^1[34578]\d{9}$/.test(phone))){
                console.log("电话号码错误");
            }
            return this;
        },
        checkEmpty:function(){
            //判断为空
            this.rang.find("[data-check='empty']").each(function(){
                var str=$(this).val();
                var placeholder=$(this).attr('placeholder')
                if(str.replace(/(^\s*)|(\s*$)/g, "").length ==0){
                    console.log(placeholder+'不能为空');
                }
            });
            return this;
        }
    }
    window["CheckObject"]=CheckObject;
})();

我们使用匿名的自执行函数限制js的作用范围:

(function(){
})();

然后通过window["CheckObject"]=CheckObject;将验证类挂载到window下以提供实例化对象的接口(因为我们使用匿名的自执行函数限制了作用域,所以必须提供一个访问的接口)
我们在CheckObject.prototype下定义了各种的验证方法,这里用到了一个小窍门:

return this;

这样做的目的是返回当前对象,如此一来我们就可以像jquery一样使用链式调用:

form.checkTel().checkEmail().checkEmpty();

后续的验证方法可以继续在protype中添加,以上就是简易的js表单验证插件,大家可以多提意见。

点击查看更多内容
13人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消