parsley.js可直接在html的dom中添加属性来控制表单验证,而不是需要另外定义js文件来验证。国内直接定义html属性来验证的有validForm,总体是根据正则表达式来完成校验。现在来介绍一款开源的js表单验证插件parsley。
1. 引入jquery.js;jquery版本要>=1.8;
2. 验证信息默认为英文的,汉化请到https://github.com/guillaumepotier/Parsley.js/tree/master/dist/i18n下载;
3. 如须支持IE8,需要加https://github.com/es-shims/es5-shim下的es5-shim.min.js;
4.应用parsley.css可到http://parsleyjs.org/src/parsley.css下载;
5. 加data-parsley-validate属性到<form>元素;
注:对于form表单是否加data-parsley-validate属性,下面的例子测试不加也可以验证;但官网特意说了要加上,可能是会有某些影响。
data-parsley-validate
to your forms Please be aware that Parsley looks at all data-parsley-validate
occurrences in DOM on document load and automatically binds them if valid.
Once a form or field instance is bound by Parsley, doing $('#form').parsley(options);
will update the existing options but not replace them.
6. 定义的属性为data-parsley-前缀,后面直接拼接html属性;
7.在form表单绑定一个属性,用该属性调用parsley()即可实现表单的验证;
当前用的parsley为2.x版本,与1.x版本相差较大。1.x的文档http://parsleyjs.github.io/Parsley-1.x/;升级参考https://github.com/guillaumepotier/Parsley.js/blob/master/UPGRADE-2.0.md
实例参考:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>parsley-初篇</title>
</head>
<body>
<form id="form" action="index.html" method="post" data-parsley-validate>
<div>
<label for="userName">姓名:</label>
<input type="text" id="userName" name="userName" data-parsley-required="true"/>
</div>
<div>
<label for="hobby">特长:</label>
<input type="text" id="hobby" name="hobby" data-parsley-required="true" data-parsley-minlength="4"/>
</div>
<div>
<input type="submit" value="提交"/>
</div>
</form>
<script src="../jquery-1.x.min.js"></script><!-- 依赖的jquery版本必须>=1.8 -->
<script src="parsley.min.js"></script>
<script src="i18n/zh_cn.js"></script><!-- 本地化提示信息 -->
<script>
$(function(){
$('#form').parsley();//调用parsley表单验证插件
});
</script>
<body>
</html>
data-parsley-required="true"为必填验证;其他格式验证(如:data-parsley-minlength="4")与必填不冲突;如果只设置格式验证,未设置必填,那么在输入内容后会进行验证。不输入内容则不验证格式是否错误。