Validform基础及用法

1.简介:

Validform的核心思想为将所有的验证条件以及验证的提示信息绑定在每个表单元素上,让验证该代码时对表单各个元素的值是否跟绑定的验证条件相符,这样就可以随便的添加或者去掉任意一表单元素而不必去修改验证代码,从而仅适用一行代码去完成整站的表单验证。

2.使用方法

2.1.引入css(官网文档中下载css)http://validform.rjboy.cn/document.html

2.2.引入js
 

//(jquery 1.4.3 以上版本都可以)
<script type="text/javascript" src="http://validform.rjboy.cn/wp-content/themes/validform/js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="http://validform.rjboy.cn/Validform/v5.1/Validform_v5.1_min.js"></script>

 2.3.给所需要的表单元素附加属性

<form class="demoform">
<input type="text" value="" name="name" datatype="s5-16" errormsg="昵称至少5个字符,最多16个字符!" />
</form>

2.4.初始化

$(".demoform").Validform();

3.绑定的附加属性 

3.1.凡是需要验证格式的元素均需要绑定datatype属性,datatype可选值内置了10类,来指定不同的验证格式。如果还不能满足所需的验证需求,可以传入自定义datatype;

可以绑定的附加属性有:datatype,nullmsg,sucmsg,errormsg,ignore,recheck,tip,altercss,ajaxurl和plugin 

//绑定方法如下
<!--ajax实时验证用户名-->
<input type="text" value="" name="name" datatype="e" ajaxurl="valid.php?myparam1=value1&myparam2=value2" sucmsg="用户名验证通过!" nullmsg="请输入用户名!" errormsg="请用邮箱或手机号码注册!"  />
 
<!--密码-->
<input type="password" value="" name="userpassword" datatype="*6-15" errormsg="密码范围在6~15位之间!" />
<!--确认密码-->
<input type="password" value="" name="userpassword2" datatype="*" recheck="userpassword" errormsg="您两次输入的账号密码不一致!" />
 
<!--默认提示文字-->
<textarea tip="请在这里输入您的意见。" errormsg="很感谢您花费宝贵时间给我们提供反馈,请填写有效内容!"  datatype="s" altercss="gray" class="gray" name="msg" value="">请在这里输入您的意见。</textarea>
 
<!--使用swfupload插件-->
<input type="text" plugin="swfupload" class="inputxt" disabled="disabled" value="">
<input type="hidden" value="" pluginhidden="swfupload">
 
<!--使用passwordStrength插件-->
<input type="password" errormsg="密码至少6个字符,最多18个字符!" datatype="*6-18" plugin="passwordStrength" class="inputxt" name="password" value="">
<div class="passwordStrength" style="display:none;"><b>密码强度:</b> <span>弱</span><span>中</span><span class="last">强</span></div>
 
<!--使用DatePicker插件-->
<input type="text" plugin="datepicker" class="inputxt" name="birthday" value="">

4.初始化参数说明 

$(".demoform").Validform({
	btnSubmit:"#btn_sub", //触发提交的元素
	btnReset:".btn_reset",//触发重置表单的元素
	tiptype:1, //弹出框提示默认为1,可选值为1,2,3和function函数
	ignoreHidden:false,//默认为false,布尔值类型,对hidden的表单元素将不做验证
	dragonfly:false,//默认为false,布尔值类型,值为空时不做验证
	tipSweep:true,//默认false,布尔值类型,各表单元素只会在表单提交时进行触发,表单元素在blur时不会进行触发
	label:".label",//在没有绑定nullmsg时查找要显示的提示文字,默认查找“.Validform_label”下的文字
	showAllError:false,//默认false,布尔值类型,提交表单时所有错误信息都会显示,一般验证不通过的对象时就会停止,不会进行下一表单的验证,只显示该元素的错误信息
	postonce:true,//默认false,指定是否开启二次提交防御,在数据成功提交后,表单将不能再继续提交。
	ajaxPost:true,//默认false,使用ajax方法进行表单提交方式,将会将数据POST到config方法或表单属性里的action属性设定的地址。
	datatype:{
		"*6-20": /^[^\s]{6,20}$/,
		"z2-4" : /^[\u4E00-\u9FA5\uf900-\ufa2d]{2,4}$/,
		"username":function(gets,obj,curform,regxp){
			//参数gets是获取到的表单元素值,obj为当前表单元素,curform为当前验证的表单,regxp为内置的一些正则表达式的引用;
			var reg1=/^[\w\.]{4,16}$/,
				reg2=/^[\u4E00-\u9FA5\uf900-\ufa2d]{2,8}$/;
 
			if(reg1.test(gets)){return true;}
			if(reg2.test(gets)){return true;}
			return false;
 
			//注意return可以返回true 或 false 或 字符串文字,true表示验证通过,返回字符串表示验证失败,字符串作为错误提示显示,返回false则用errmsg或默认的错误提示;
		},
		"phone":function(){
			// 5.0 版本之后,要实现二选一的验证效果,datatype 的名称 不 需要以 "option_" 开头;	
		}
	},
	usePlugin:{
		swfupload:{},
		datepicker:{},
		passwordstrength:{},
		jqtransform:{
			selector:"select,input"
		}
	},
	beforeCheck:function(curform){
		//在表单提交执行验证之前执行的函数,curform参数是当前表单对象。
		//这里明确return false的话将不会继续执行验证操作;	
	},
	beforeSubmit:function(curform){
		//在验证成功后,表单提交前执行的函数,curform参数是当前表单对象。
		//这里明确return false的话表单将不会提交;	
	},
	callback:function(data){
		//返回数据data是json对象,{"info":"demo info","status":"y"}
		//info: 输出提示信息;
		//status: 返回提交数据的状态,是否提交成功。如可以用"y"表示提交成功,"n"表示提交失败,在ajax_post.php文件返回数据里自定字符,主要用在callback函数里根据该值执行相应的回调操作;
		//你也可以在ajax_post.php文件返回更多信息在这里获取,进行相应操作;
		//ajax遇到服务端错误时也会执行回调,这时的data是{ status:**, statusText:**, readyState:**, responseText:** };
 
		//这里执行回调操作;
		//注意:如果不是ajax方式提交表单,传入callback,这时data参数是当前表单对象,回调函数会在表单验证全部通过后执行,然后判断是否提交表单,如果callback里明确return false,则表单不会提交,如果return true或没有return,则会提交表单。
	}
});

5.demo例子使用 

 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>form</title>
    <link rel="stylesheet" href="../layui/css/layui.css">
    <link rel="stylesheet" href="../css/index.css">
    <link rel="stylesheet" href="../css/contract.css">
    <style>
        label.required {
            color: #3889c9!important;
        }
    </style>
</head>

<body>
    <div class="layui-container">
        <div class="layui-row">
            <form  id="demoForm">
                <div class="base-fieldset-content clearfix">
                    <div class="base-grid3-2 marginb10">
                        <label class="base-form-txt required">项目名称</label>
                        <div class="base-input-box">
                            <input class="base-form-input Validform_error" datatype="*" nullmsg="该项不能为空" name="project_name"
                                maxlength="200" id="project_name" type="text">
                        </div>
                    </div>
                    <div class="base-grid3-2 marginb10">
                        <label class="base-form-txt required">合同名称(全称)</label>
                        <div class="base-input-box">
                            <input class="base-form-input" datatype="*" nullmsg="该项不能为空" name="contract_name" id="contract_name"
                                maxlength="200" type="text">
                        </div>
                    </div>
                    <div class="base-grid3-1 marginb10">
                        <label class="base-form-txt">合同编号</label>
                        <div class="base-input-box">
                            <input class="base-form-input" id="contract_no" name="contract_no" maxlength="45" type="text">
                        </div>
                    </div>
                    <div class="base-grid3-2 marginb10">
                        <label class="base-form-txt required">业主名称</label>
                        <div class="base-input-box">
                            <input class="base-form-input Validform_error" type="text" id="first_partyName" datatype="*"
                                nullmsg="该项不能为空" >
                            <input type="hidden" id="first_party" name="first_party">
                        </div>
                    </div>
                    <div class="base-grid1 marginb10">
                        <div class="layui-btn-container">
                            <a class="layui-btn layui-btn-warm layui-btn-sm btn_reset">
                                <i class="layui-icon layui-icon-refresh-3"></i> 重置
                            </a>
                            <a class="layui-btn layui-icon-normal layui-btn-sm" id="btn_sub">
                                <i class="layui-icon layui-icon-ok-circle"></i> 提交
                            </a>
                        </div>
                    </div>
                </div>
            </form>

        </div>
    </div>
    <script src="../layui/layui.all.js"></script>
    <script src="../js/jquery-1.11.0.min.js"></script>
    <script src="../js/Validform_v5.3.2.js"></script>
    <script>
        var isSubmit = false;
        $("#demoForm").Validform({
            btnSubmit: "#btn_sub", //触发提交的元素
            btnReset: ".btn_reset", //触发重置表单的元素
            // tiptype: 1, //弹出框提示默认为1,可选值为1,2,3和function函数
            tiptype:function(msg,o,cssctl){
			    if(o.type == 3){
			    	layer.tips(msg, o.obj);
			    }
			}, 
            ignoreHidden: false, //默认为false,布尔值类型,对hidden的表单元素将不做验证
            dragonfly: false, //默认为false,布尔值类型,值为空时不做验证
            tipSweep: true, //默认false,布尔值类型,各表单元素只会在表单提交时进行触发,表单元素在blur时不会进行触发
            label: ".label", //在没有绑定nullmsg时查找要显示的提示文字,默认查找“.Validform_label”下的文字
            showAllError: false, //默认false,布尔值类型,提交表单时所有错误信息都会显示,一般验证不通过的对象时就会停止,不会进行下一表单的验证,只显示该元素的错误信息
            postonce: true, //默认false,指定是否开启二次提交防御,在数据成功提交后,表单将不能再继续提交。
            ajaxPost: true, //默认false,使用ajax方法进行表单提交方式,将会将数据POST到config方法或表单属性里的action属性设定的地址。
            datatype: {
                "*6-20": /^[^\s]{6,20}$/,
                "z2-4": /^[\u4E00-\u9FA5\uf900-\ufa2d]{2,4}$/,
                "username": function (gets, obj, curform, regxp) {
                    //参数gets是获取到的表单元素值,obj为当前表单元素,curform为当前验证的表单,regxp为内置的一些正则表达式的引用;
                    var reg1 = /^[\w\.]{4,16}$/,
                        reg2 = /^[\u4E00-\u9FA5\uf900-\ufa2d]{2,8}$/;

                    if (reg1.test(gets)) {
                        return true;
                    }
                    if (reg2.test(gets)) {
                        return true;
                    }
                    return false;

                    //注意return可以返回true 或 false 或 字符串文字,true表示验证通过,返回字符串表示验证失败,字符串作为错误提示显示,返回false则用errmsg或默认的错误提示;
                },
                "phone": function () {
                    // 5.0 版本之后,要实现二选一的验证效果,datatype 的名称 不 需要以 "option_" 开头;	
                }
            },
            usePlugin: {
                swfupload: {},
                datepicker: {},
                passwordstrength: {},
                jqtransform: {
                    selector: "select,input"
                }
            },
            beforeCheck: function (curform) {
                console.log(curform)
                //在表单提交执行验证之前执行的函数,curform参数是当前表单对象。
                //这里明确return false的话将不会继续执行验证操作;	
            },
            beforeSubmit: function (curform) {
                console.log(curform)
                if(isSubmit){
					return false;
				}
				isSubmit = true;
				return true;
                //在验证成功后,表单提交前执行的函数,curform参数是当前表单对象。
                //这里明确return false的话表单将不会提交;	
            },
            callback: function (data) {
                if(data.success){
                    layer.msg("提交成功",function(){
                        window.open("http://www.baidu.com")
                    })
                    isSubmit = false;
                }else{

                    isSubmit = false;
                }
                console.log(data)

                //返回数据data是json对象,{"info":"demo info","status":"y"}
                //info: 输出提示信息;
                //status: 返回提交数据的状态,是否提交成功。如可以用"y"表示提交成功,"n"表示提交失败,在ajax_post.php文件返回数据里自定字符,主要用在callback函数里根据该值执行相应的回调操作;
                //你也可以在ajax_post.php文件返回更多信息在这里获取,进行相应操作;
                //ajax遇到服务端错误时也会执行回调,这时的data是{ status:**, statusText:**, readyState:**, responseText:** };

                //这里执行回调操作;
                //注意:如果不是ajax方式提交表单,传入callback,这时data参数是当前表单对象,回调函数会在表单验证全部通过后执行,然后判断是否提交表单,如果callback里明确return false,则表单不会提交,如果return true或没有return,则会提交表单。
            }
        });
    </script>
</body>

</html>

以上为大体validform的使用方法,如有更多问题请参考文档http://validform.rjboy.cn/

 

 

 

 

 

 

 

### 回答1: Validform 是一种表单验证插件,它可以帮助我们在提交表单之前对表单进行验证。以下是 Validform 可以使用的一些参数: 1. tiptype:提示信息的显示方式,可以是"1"、"2"、"3"或"4",分别表示“自定义提示”、“浮动提示”、“向右提示”和“弹出提示”。 2. label:是否在表单元素左侧显示标签,默认为false,不显示。 3. showAllError:是否在提交表单前验证所有表单元素,默认为false,只验证第一个错误的表单元素。 4. datatype:表单元素的数据类型,可以是"n"(数字)、"s"(字符串)、"e"(邮箱)、"m"(手机)等。 5. nullmsg:表单元素为空时的提示信息。 6. errormsg:表单元素不符合要求时的提示信息。 7. ajaxurl:当表单元素需要通过 ajax 请求来验证时,ajax 请求的地址。 8. ignoreHidden:是否忽略隐藏的表单元素,默认为true,忽略。 9. beforeCheck:表单元素验证之前的回调函数。 10. beforeSubmit:表单提交之前的回调函数。 以上是 Validform 可以使用的一些常用参数,可以根据具体情况进行选择和配置。 ### 回答2: Validform 是一款基于 jQuery表单验证插件,可以用于对表单中的输入内容进行实时验证。它支持多种验证规则以及自定义验证方法,并且可以通过参数设置来定制验证规则。 在使用 Validform 时,我们可以在初始化插件时通过参数来设置验证规则。下面是一些常用的参数: 1. tiptype:设置提示信息的显示方式。可以设置为 1 或 2,1 表示在表单元素后方显示提示信息,2 表示在表单元素下方显示提示信息。 2. tipSweep:设置是否连续显示提示信息。如果设置为 true,则会在表单元素失去焦点时弹出提示信息,否则只有在第一次焦点离开表单元素时才会显示信息,默认值为 false。 3. datatype:设置验证规则。可以设置为 "n"(数字类型)、"s"(字串类型)、"e"(电子邮件类型)等等。也可以通过设置正则表达式进行复杂的验证。 4. ajaxurl:设置异步请求的地址。当使用 ajax 验证时,可以通过设置这个参数来指定后台处理的 URL 地址。 5. callback:设置回调方法。可以在验证成功或失败后执行一些自定义逻辑。 除了以上参数外,Validform 还提供了许多其他参数,如 ignoreHidden、showAllError、btnSubmit 等,可以根据需要调整验证方式和效果。 总之,通过合理设置参数,我们可以完全定制 Validform 插件的验证行为,使其能够满足不同项目的需求。这样可以为用户提供友好的输入提示和错误信息,提高表单的验证准确性和用户体验。 ### 回答3: Validform 是一个基于 jQuery表单验证插件,它允许我们在网页上进行表单验证Validform 提供了许多参数,可以根据我们的需求来定制和扩展验证规则。 首先,最基本的参数是 formSelector,用于指定要进行验证的表单的选择器。我们可以使用类名、ID 或任何其他选择器来选择表单。例如:formSelector: ".myForm"。 其次,dataType 参数用于指定验证字段的类型。Validform 内置了一些常见的类型,如手机号码、邮箱、日期等。我们可以根据需要选择适当的类型。例如:dataType: "m" 表示验证手机号码。 我们还可以使用 ignore 参数来指定需要忽略验证的字段。通过给字段添加特定的类名或属性,将它们排除在验证之外。例如:ignore: ".ignoreField"。 另外一个常用的参数是 titDefault,它用于设置验证提示信息的默认文本。我们可以在初始化时通过该参数设置默认文本,也可以在具体的字段中重新定义提示信息。例如:titDefault: "该字段不能为空"。 除此之外,Validform 还提供了许多其他参数,如 ajaxPost、tiptype、beforeSubmit 等,它们可以帮助我们进一步定制和扩展表单验证的功能。 总之,Validform 使用参数来定义表单验证的行为。我们可以根据需要设置不同的参数,以满足特定的验证需求。通过合理使用这些参数,我们可以实现灵活、高效的表单验证
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值