formVildation基本使用

一、引入插件

<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- 为了确保适当的绘制和触屏缩放,需要在 <head> 之中添加 viewport 元数据标签。 -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<title>Bootstrap</title>

<!-- 在线版的 -->
<link href="../../css/bootstrap.min.css" rel="stylesheet">
<link href="../../css/formValidation.min.css" rel="stylesheet">
<link href="http://cdn.bootcss.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet">
<!-- bootstrap -->
<script src="../../js/jquery.min.js"></script>
<script src="../../js/bootstrap.min.js"></script>
<!-- formValidation -->
<script src="../../js/formValidation.min.js"></script>
<!-- 注意bootstrap.min.js文件有2个,这2个是不同的! -->
<script src="../../js/formValidation/bootstrap.min.js"></script>

二、基本使用

<script type="text/javascript">
	$(() => {
	     var isStopSubmit = true;
	     $('#defaultForm').formValidation({
	         framework: 'bootstrap',//It can be: bootstrap, foundation, pure, semantic, uikit
	         excluded: [':disabled', ':hidden', ':not(:visible)'],//排除调不需要验证的元素
	         // trigger:"blur",//全局触发器,
	         locale: 'zh_CN',
	         icon: {//配置验证的图标样式——>✅、❌
	             valid: 'glyphicon glyphicon-ok',
	             invalid: 'glyphicon glyphicon-remove',
	             validating: 'glyphicon glyphicon-refresh'
	         },
	         /*icon: {
	             valid: 'fa fa-check',
	             invalid: 'fa fa-times',
	             validating: 'fa fa-refresh'
	         },*/
	         fields: {
	             username: {//默认取的是表单域的name,也可以用选择器,
	                 validators: {
	                     notEmpty: {
	                         message: '用户名不能为空'
	                     },
	                     /*stringLength: {
	                         min: 6,
	                         max: 30,
	                         message: '用户名必须在6-30个字符之间'
	                     },
	                     stringCase:{
	                       case:'lower',
	                         message: '用户名只能填小写'
	                     }*/
	                     /*remote:{
	                         method: 'POST',
	                         data:{
	                             username:'username'
	                         },//推荐使用这个方式,当然也可以在url后面拼接参数,如下:
	                         url: '/security/account/validateUserEmail.do?username='+$("input[name='username']").val(),
	                         message: '此用户名已经被注册!',
	                         validKey: 'flag',//该选项可以不给,如果不给,默认为'valid'
	                     }*/
	                 }
	             },
	             phone: {
	                 // verbose: false,//顺序验证
	                 validators: {
	                     notEmpty: {
	                         message: '手机号不能为空'
	                     },
	                     digits: {
	                         message: '只能输入数字'
	                     },
	                     /*integer: {
	                         message: '也可以输入负数'
	                     }*/
	                     /*greaterThan:{
	                         value : 10,
	                         message: '不能小于10',
	                     },
	                     lessThan: {
	                         value: 20,
	                         message: '不能大于20'
	                     }*/
	                     /*between:{
	                         min: -90.0,//可以输入浮点数
	                         max: 90.0,
	                         message: '纬度必须在 -90.0~90.0 之间',
	                     }*/
	                 }
	             },
	             email: {
	                 validators: {
	                     notEmpty: {
	                         message: '电子邮件不能为空'
	                     },
	                     emailAddress: {
	                         message: '请输入有效的电子邮件地址'
	                     }
	                 }
	             },
	             'languages[]': {
	                 validators: {
	                     choice: {
	                         min: 2,
	                         max: 4,
	                         message: '请选择你擅长的%s-%s门编程语言'
	                     }
	                 }
	             },
	             'ip': {
	                 validators: {
	                     notEmpty: {
	                         message: 'IP不能为空'
	                     },
	                     ip: {
	                         ipv4: true,
	                         ipv6: true,
	                         message: '请输入正确的ip地址',
	                     },
	                     /*regexp: {
	                         regexp: /^((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))$/,
	                         message: 'ip格式不正确'
	                     }*/
	                 }
	             },
	             password: {
	                 validators: {
	                     notEmpty: {
	                         message: '密码不能为空'
	                     },
	                     different: {
	                         field: 'username',
	                         message: '密码不能和用户名相同'
	                     }
	                 }
	             },
	             repeat_password: {
	                 validators: {
	                     notEmpty: {
	                         message: '确认密码不能为空'
	                     },
	                     identical: {
	                         field: 'password',
	                         message: '前后密码不一致'
	                     }
	                 }
	             },
	             sum: {
	                 validators: {
	                     callback: {
	                         message: '答案错误!',
	                         callback: function(value, validator, $field) {
	                             return value == 100;
	                         }
	                     }
	                 }
	             },
	             //验证隐藏域
	             hidden: {
	                 excluded:false,
	                 validators: {
	                     notEmpty: {
	                         message: '隐藏域不能为空!'
	                     }
	                 }
	             },
	             captcha: {
	                 // excluded:false,
	                 // trigger: 'blur',//单个触发器
	                 validators: {
	                     notEmpty: {
	                         message: '验证码不能为空!'
	                     },
	                     callback:{
	                         message: '验证码错误!',
	                         callback: function(value, validator, $field) {
	                             return value == '12345';
	                         }
	                     }
	                 },
	                 onSuccess: function(e, data) {
	                     $("#senSms").css("pointer-events","");
	                     $("#senSms").attr("disabled", false);
	                 },
	                 onError: function(e, data) {
	                     $("#senSms").css("pointer-events","none");
	                     $("#senSms").attr("disabled", true);
	                 },
	             },
	         },
	         onSuccess :function(e){
	            if(isStopSubmit) {
	                // 阻止默认提交
	                e.preventDefault();
	
	                var isComplete = false;
	                /*
	                  do something,比如说校验附件个数等等...
	                  isComplete = true;
	               */
	
	                if (isComplete) {
	                    isStopSubmit = false;
	                    $(e.currentTarget).submit();
	                }
	            }
	         },
	         onError: function(e) {
	             // do something ...
	         }
	     }).on("success.form.fv",function(e) {
	         if(isStopSubmit){
	             // 阻止默认提交
	             e.preventDefault();
	
	             var isComplete = false;
	             /*
	                 do something,比如说校验附件个数等等...
	                 isComplete = true;
	              */
	
	             if(isComplete){
	                 isStopSubmit = false;
	                 $(e.currentTarget).submit();
	             }
	         }
	     });
	 });
</script>

三、动态校验

1.动态添加验证

$form.formValidation('addField',"验证元素的name值",{
	validators:{
		notEmpty: {
			message:"用户名为必选项"
		}
	}
});

2.动态移除验证

$form.formValidation('removeField',"验证元素的name值");

3.手动触发验证

$form. formValidation('revalidateField',"验证元素的name值");

4.重置验证

$form.formValidation('resetField',"验证元素的name值");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值