这边文章介绍下parsley.js自定义验证器的使用和demo
1、先说说parsley.remote.js 的bug
在parsley.remote.js中data-parsley-remote="url" 返回值是错误的,
此方法是根据url状态返回值判定:
如果返回值是200 都返回true 其他状态值是false
因为有这个缺陷对parsley异步定义方法
2、对parsley.js异步的自定义方法:
//异步调用自定义方法 window.ParsleyExtend = { asyncValidators: { //checkaccount 中account的a不可以大写 checkaccount:{ fn: function(xhr) { return xhr.responseText.indexOf('true') >= 0; }, //url 路径 自定义 url: '/user/checkAccount' } } };
3、对parsley.js同步自定义验证器
window.ParsleyConfig = window.ParsleyConfig || {}; window.ParsleyConfig.validators = window.ParsleyConfig.validators || {}; (function($) { window.ParsleyConfig = $.extend(true, {}, window.ParsleyConfig, { validators: { //手机或者email的校验的自定义 phoneemail: { fn: function(value) { var phone = /^1[3|4|5|7|8][0-9]\d{8}$/; var email = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))){2,6}$/i; return (phone.test(value) || email.test(value)); }, priority: 32 }, //特殊字符校验的自定义 nospecial: { fn: function(value) { var myReg = /[~^@\/\'\\\"#$%&\^\*\?\(\),`\+;\[\]\{\}\|\.::<>!!¥?(),。、]/; if (myReg.test(value)) return false; return true; }, priority: 32 } }, messages: { phoneemail: "请填写正确的手机号码/电子邮箱", nospecial: "您输入的值不可包含特殊字符" } }); }(window.jQuery || window.Zepto));
对自定义的校验规则 加载parsley.remote.js文件的最前面
对自定义parsley的使用如下:
<form method="POST" action="/user/register"class="jv-form jv-form-horizontal register-form" data-parsley-validate> <label for="fullname">账号</label> //对remote的校验必须填写 data-parsley-remote //异步校验规则是data-parsley-remote-validator="checkaccount" //异步提示信息data-parsley-remote-message //同步的校验规则引用是 data-parsley-phoneemail 提示信息data-parsley-phoneemail-message <input type="text" name="account" class="username" placeholder="手机号码/电子邮箱" data-parsley-required="true" data-parsley-trigger="blur" data-parsley-required-message="手机号码/电子邮箱不可为空" data-parsley-phoneemail data-parsley-phoneemail-message="请填写正确的手机号码/电子邮箱" data-parsley-remote data-parsley-remote-validator="checkaccount" data-parsley-remote-message="输入的账号已注册" data-parsley-minwords="10" data-parsley-minwords-message="请输入10" /> <label for="fullname">密码</label> <input type="password" id="reg_phone_pwd" name="password" class="password" data-parsley-required="true" data-parsley-trigger="focusout" data-parsley-required-message="密码不可为空" data-parsley-minlength="6" data-parsley-minlength-message="密码位数不可少于6位" /> <from>
3、css的自定义
/* CSS自定义 */ window.ParsleyConfig = $.extend( window.ParsleyConfig || {}, { successClass: 'jv-form-success', errorClass: 'jv-form-danger', errorsWrapper: '<ul class="jv-form-error-msg"></ul>', errorTemplate: '<li></li>' });
相关推荐
**Parsley.js** 是一个强大的前端验证框架,专门用于JavaScript,它的主要目的是在用户提交表单之前确保输入数据的有效性和正确性。这个框架通过添加轻量级的DOM数据属性和事件来实现验证,无需编写复杂的JavaScript...
1. **引入资源**:在HTML文件中,需要引入`parsley.css`用于样式布局,`parsley-2.0.3.js`或其压缩版本`parsley-2.0.3.min.js`用于JavaScript功能。 2. **初始化表单**:通过添加`data-parsley-validate`属性到表单...
2. **前端资源**:可能包含Parsley的CSS和JS文件,需要在Laravel的公共目录下放置,并在布局文件中正确引用。 3. **Blade模板示例**:展示如何在Blade模板中利用Parsley进行表单验证,如添加数据验证属性和错误消息...
2. parsley.js:另一个强大的验证插件,它支持自定义验证规则,且具有实时验证和友好的错误提示功能。 3. validate.js:轻量级验证插件,适用于小型项目,提供基本的验证功能。 三、自定义验证规则 除了使用现成...
除了使用内置的验证规则,还可以通过jQuery Validation Plugin的`.rules('add')`方法添加自定义验证规则。例如,验证密码强度: ```javascript $("#password").rules("add", { minlength: 8, maxlength: 20, ...
laravel-parsley也支持自定义验证规则和错误消息。如果你有自定义的验证规则,可以在FormRequest中定义,laravel-parsley会尝试查找对应的Parsley验证器。如果找不到,你可以创建一个转换器,将自定义规则映射到...
7. **使用第三方库**:像Validator.js、 parsley.js 或其他类似的JavaScript库可以提供更丰富的验证效果和自定义选项。 总的来说,ASP.NET验证提示的美化是一个涉及前端设计和后端逻辑的过程。通过对验证控件样式...
3. **Parsley.js**:这个插件注重灵活性和可扩展性,支持HTML5内置的验证属性,也允许自定义验证规则。 **四、使用示例** 以jQuery Validation Plugin为例,创建一个简单的表单验证: 1. 引入jQuery库和验证插件...
3. **Parsley.js**:它提供了丰富的验证规则和自定义验证功能,支持实时验证和异步验证。Parsley的使用往往只需在表单元素上添加特定的data属性即可。 ### 三、美化验证效果 1. **CSS样式**:利用CSS对错误元素...
自定义验证规则 jQuery Form验证不仅支持内置的规则,如`required`, `email`, `number`等,还可以自定义规则。例如,创建一个验证密码强度的规则: ```javascript $.validator.addMethod("passwordStrength", ...
- **初始化验证**:在表单元素加载后,通过`$("#myForm").validate({ options })`来启动验证,其中`options`包含设置如`rules`(定义验证规则)、`messages`(自定义错误消息)等。 - **自定义规则**:可以扩展`...
此外,还有其他第三方库如Parsley.js、FormValidation.io等,它们提供了更多的自定义选项和更强大的验证机制。 总的来说,这个压缩包可能包含了一系列用于JavaScript验证的jQuery工具和资源,适合那些希望在Web应用...
此外,理解CSS和JavaScript的交互也有助于定制验证效果。 总之,"表单验证功能的jQuery特效插件"是提高网页表单体验的重要工具,它们通过提供可视化反馈和灵活的配置,使得表单验证变得简单易行。开发者应当根据...
HTML5自带了一些内置验证,但更多情况下,开发者会借助JavaScript库如jQuery Validation或Parsley.js来实现自定义验证规则。 9. **模态框与对话框** 模态框和对话框用于在不离开当前页面的情况下显示额外信息或...