使用策略模式进行简单的form验证
来源:互联网 发布:苹果mac怎么关闭程序 编辑:程序博客网 时间:2024/06/13 06:12
<h1>使用策略模式进行简单的form验证</h1><form action="" method="post" id="registForm" novalidate> 请输入用户名:<input type="text" name="userName" /> <br /> 请输入密码:<input type="text" name="password" /> <br /> 请输入手机号:<input type="text" name="phoneNumber" /> <br /> <input type="submit" value="提交" /> </form><script> var stategies = { required: function( value, errorMsg ){ if( value == "" ){ return errorMsg; } }, minLength: function( value, length, errorMsg ){ if( value.length < length ){ return errorMsg; } }, isMobile: function( value, errorMsg ){ if( !( /^1[34578]\d{9}$/.test(value) ) ){ return errorMsg; } } }; var Validator = function(){ this.cache = []; }; Validator.prototype = { add: function( dom, rules ){ var self = this; for( var i= 0, rule; rule = rules[ i++ ]; ){ ( function( rule ){ var strategyAry = rule.strategy.split( ":" ); var errorMsg = rule.errorMsg; self.cache.push( function(){ var strategy = strategyAry.shift(); strategyAry.unshift( dom.value ); strategyAry.push( errorMsg ); return stategies[ strategy ].apply( dom, strategyAry ); } ) }( rule ) ) } }, start: function(){ for( var i = 0, validatorFunc; validatorFunc = this.cache[ i++ ]; ){ var errorMsg = validatorFunc(); if( errorMsg ){ return errorMsg; } } } }; var registForm = document.getElementById( "registForm" ); var validateFunc = function(){ var validator = new Validator(); validator.add( registForm.userName, [{ strategy: "required", errorMsg: "用户名不能为空" },{ strategy: "minLength:3", errorMsg: "用户名长度不能小于3位" }]); validator.add( registForm.password, [{ strategy: "minLength:6", errorMsg: "密码长度不能小于6位" }]); validator.add( registForm.phoneNumber, [{ strategy: "isMobile", errorMsg: "手机号码格式不正确" }]); var errorMsg = validator.start(); return errorMsg; }; var errorMsg = validateFunc(); registForm.onsubmit = function(){ var errorMsg = validateFunc(); if( errorMsg ){ console.log(errorMsg); return false; } }</script>
1 0
- 使用策略模式进行简单的form验证
- 策略模式的简单使用
- 简单的form表单验证
- 策略模式与简单工厂模式的结合使用
- sharepoint实现简单的form验证
- Struts(简单的Form验证)
- 策略模式的使用
- 策略模式的使用
- 有趣的Java - 简单使用enum实现策略模式Strategy
- 策略模式在java中的简单使用的代码
- 使用python以及工具包进行简单的验证码识别
- 使用Python进行简单的验证码识别
- 使用正则表达式进行简单的邮箱验证操作
- FORM验证简单demo
- magento中如何使用Prototype对form进行验证
- 策略模式:策略模式与简单工厂模式的异同
- [简单的设计模式]策略模式
- JavaScript进行Form表单验证
- mysql学习历程
- Sort the Array (CF)
- SPOJ - Linearian Colony【分解为子问题】
- 【NOIP2014八校联考第2场第2试9.28】分组(group)
- UOJ 79 带花树入门
- 使用策略模式进行简单的form验证
- uoj 279: [UTR #2]题目交流通道 动态规划
- nginx过滤器模块
- LCD12864 为什么就是显示不了内容!
- 步步扎进Java-面向对象
- bzoj 2820: YY的GCD 莫比乌斯反演
- 图解Linux命令之--comm命令
- liferay ga6获取当前语言环境
- 使用selenium+phantomjs