js表单验证,并显示红色警告

我们在表单输入数据的时候,往往需要对输入的数据进行验证,如字段非空,邮箱格式,手机号,电话号等等。下面我将最近使用的表单验证分享一下。下面的#name对应的都是input

<script>
var checkObject = {
    checkUsername: function (value) {
        if(value == ""){
            $("#username").attr("style", "display:inline");
            $("#username").html("*用户名不能为空!");
            $("#submit").attr('disabled',true);
        }else{
            $("#username").attr("style", "display:none");
            $("#submit").attr('disabled',false);
        }
    },
    checkPhone: function (value) {
        var p = new RegExp(/^1[34578]\d{9}$/);
        if(value == ""){
            $("#phone").attr("style", "display:inline");
            $("#phone").html("*手机号不能为空!");
            $("#submit").attr('disabled',true);
        }else if(!value.match(p)){
            $("#phone").attr("style", "display:inline");
            $("#phone").html("*手机号有误,请修正!"); //手机号格式验证
            $("#submit").attr('disabled',true);
        }
        else{
            $("#admin_phone").attr("style", "display:none");
            $("#submit").attr('disabled',false);
        }
    },
    checkEmail: function (value) {
        var re=/^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/;
        if(!re.test(value)){
            $("#email").attr("style", "display:inline");
            $("#email").html("*邮箱格式不正确!");
            $("#submit").attr('disabled',true);
        }else{
            $("#email").attr("style", "display:none");
            $("#email").attr('disabled',false);
        }
    }
   
    checkID: function (value) {
        var i = new RegExp(/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/);
    	if(!value.match(i)){
           $("#IdCard").attr("style", "display:inline");
           $("#IdCard").html("*身份证号有误,请修正!");
           $("#submit").attr('disabled',true);
        }
    	else{
           $("#IdCard").attr("style", "display:none");
           $("#submit").attr('disabled',false);
    	}
},
}
</scipt>

另外,还有验证输入类型的,如只能输入非零整数

function checkNumber(number){
    var r1 =/^\+?[1-9][0-9]*$/;  //正整数
    var r2= /^-[0-9]*[1-9][0-9]*$/;  //负整数
    if(!r1.test(number) && !r2.test(number)){
        $("p").attr("style", "display:visibility");//单个属性的设置
        $("p span").html("只允许输入非零整数");
        $("#submit").attr('disabled',true);
    }
    else if(number == ""){
        $("p ").attr("style", "display:visibility");//单个属性的设置
        $("p span").html("不能为空!");
        $("#submit").attr('disabled',true);
    }
    else{
        $("p ").attr("style", "display:none");//单个属性的设置
        $("#submit").attr('disabled',false);
    }
}
其中在html代码中 用 required onkeyup来调用js函数
 <div id="username" class="admin_modify_warn" style="display: none;"></div> //这句代码用来显示红色提醒

<div class="form-group">
    <label class="col-sm-2 control-label">用户名</label>

    <div class="col-sm-10">
        <input class="form-control" name="username" placeholder="" value="{$user.username}" type="text"
               required οnkeyup="checkObject.checkUsername(this.value)">
        <div id="username" class="modify_warn" style="display: none;"></div>
    </div>
</div>

此外,还有些常用的正则表达式, 如qq:

var qq = new RegExp(/^[1-9][0-9]{4,9}$/);	

补充:1.短时间段(如:08:00-09:00;10:00-12:00)时间格式的验证:

^\d{2}:\d{2}-\d{2}:\d{2};\d{2}:\d{2}-\d{2}:\d{2}$ 
如果时间格式确定,时间段的个数不确定,可以写为( 后面的括起来,*):
^\d{2}:\d{2}-\d{2}:\d{2}(;\d{2}:\d{2}-\d{2}:\d{2})*$	
2.两种时间格式正则表达式 --HH:mm, HH:mm:ss
   HH:mm       /^[0-2][0-9]:[0-5][0-9]$/  或者  /^(?:[01]\d|2[0-3])(?::[0-5]\d)$/;
   HH:mm:ss    /^[0-2][0-9]:[0-5][0-9]:[0-5][0-9]$/    或者  /^(?:[01]\d|2[0-3])(?::[0-5]\d){2}$/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值