1. 程式人生 > >給某個文本框添加多種校驗規則

給某個文本框添加多種校驗規則

div error pre pos value .get get ply body

<html>
    <head>
        <meta charset="uft-8">
    </head>
    <body>
        <form action="" id="registerForm" method="post">
        請輸入用戶名:<input type="text" name="userName"/>
            請輸入密碼:<input type="text" name="passWord"/>
            請輸入手機號碼:
<input type="text" name="phoneNumber"/> <input type="submit" value="提交"/> </form> <script> /***************策略對象*************/ var strategies = { isNotEmpty:function(value,errorMsg){ if(value === ‘‘
){ return errorMsg; } }, minLength:function(value,length,errorMsg){ if(value.length<length){ return errorMsg; } }, isMobile:function(){
if(!/(^1[3|5|8][0-9]{9}$)/.test(value)){ return errorMsg; } } } /***************validator類***************/ 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.solit(:); var errorMsg = rule.errorMsg; self.cache.push(function(){ var strategy = strategyAry.shift(); strategyAry.unshift(dom.value); strategyAry.push(errorMsg); return strategies[strategy].apply(dom,strategyAry); }) })(rule); } } Validator.prototype.start = function(){ for(var i=0,validatorFunc;validatorFunc = this.cache[i++];){ var errorMsg = validatorFunc(); if(errorMsg){ return errorMsg; } } } /************客戶調用代碼***********/ var registerForm = document.getElementById(registerForm); var validatorFunc = function(){ var validator = new Validator(); validator.add(registerForm.userName,[{ strategy:isNotEmpty, errorMsg:用戶名不能為空 },{strategy:minLength:10, errorMsg:用戶名長度不能小於10位 }]); validator.add(registerForm.passWord,[{ strategy:minLength:6, errorMsg:用戶密碼不能小於6位 }]); validator.add(registerForm.phoneNumber,[{ strategy:isMobile, errorMsg:手機號碼格式不正確 }]); var errorMsg = validator.start(); return errorMsg; } registerForm.onsubmit = function(){ var errorMsg = validatorFunc(); if(errorMsg){ alert(errorMsg); return false; } } </script> </body> </html>

end: 拿走不謝

給某個文本框添加多種校驗規則