`
xiangdefei
  • 浏览: 58275 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JavaScript验证器

阅读更多
这个js脚本只是提供一个通用的验证框架,具体的验证规则,以及不能通过验证的时候所产生的动作完全可以定制。
   首先,给需要验证的表单(Form)中的需要加入验证器的input控件加入一定的验证规则,这个例子中是通过给Input控件加入一个自定义的属性来实现的,如下例:

<script src="validate.js" ></script>  
<style>  
    input.invalid{background: #faa;}  
    input.valid{background: #afa;}    
</style>  
  
<form>  
    name : <input type="text" name="name" required><br>  
    email: <input type="text" name="email" pattern="^\s*\w+@\w+\.\w+\s*$"><br>  
    zipcode : <input type="text" name="zipcode" pattern="^\s*\d{5}\s*$"><br>  
    unvalidate : <input type="text"><br>  
      
    <input type="submit" value="submit query">  
</form>  




当你看到required或者pattern时,不要慨叹自己才疏学浅,因为这两个属性是自定义的。从而实现了js脚本跟html的分离。下面是这个牛B的JavaScript脚本:
(  
function(){  
    if(window.addEventListener) window.addEventListener("load", init, false);  
    else if(window.attachEvent) window.attachEvent("onload", init);  
          
    function init(){  
        for(var i = 0;i < document.forms.length;i++){  
            var f = document.forms[i];  
            var needsValidation = false;  
            for(var j = 0;j < f.elements.length; j++){  
                var e = f.elements[j];  
                if(e.type != "text") continue;  
                var pattern = e.getAttribute("pattern");  
                var required = e.getAttribute("required") != null;  
                  
                if(required && !pattern){  
                    pattern = "\\S";  
                    e.setAttribute("pattern", pattern);   
                }     
                  
                if(pattern){  
                    e.onchange = validateOnChange;  
                    needsValidation = true;  
                }  
            }  
            if(needsValidation) f.onsubmit = validateOnSubmit;    
        }  
    }  
      
    function validateOnChange(){  
        var textfield = this;  
        var pattern = textfield.getAttribute("pattern");  
        var value = this.value;  
          
        if(value.search(pattern) == -1) textfield.className = "invalid";  
        else textfield.className = "valid";   
    }  
      
    function validateOnSubmit(){  
        var invalid = false;  
        for(var i = 0; i < this.elements.length;i++){  
            var e = this.elements[i];  
            if(e.type == "text" && e.onchange == validateOnChange){  
                e.onchange();     
                if(e.className == "invalid") invalid = true;  
            }  
        }  
        if(invalid){  
            alert(  "The form is incompletely or incorrectly filled out.\n"+  
                    "Please correct the hightlighted fields and try again.");  
            return false;  
        }     
    }     
}  
)();  



主题的思想是这样,先定义合法和非法时需要做的动作(在这个例子中,只是简单的将input框的背景色改变而已,这个可以通过CSS轻易实现,你也可以弹出警告等来提示用户),然后,当框中的内容改变时,就尝试去匹配这个input定义的模式(如果有的话),如果不匹配,就以一定的方式来提醒用户。

整个验证器的思路非常清晰,代码也很简洁,主要是通过自定义规则可以完成任意的验证方式。
分享到:
评论

相关推荐

    Sneek-Validator:受 Laravel 框架验证器启发的 Javascript 验证器表单

    验证器-Js 受 Laravel 框架验证器启发的 Javascript 验证器表单用其他语言阅读本文:、如果您习惯于 Laravel 框架的表单验证器,那么这个用 javascript 编写的库可能对您感兴趣。 基本上,我试图将 Laravel ...

    javascript-eslint.tmbundle:将ESLint JavaScript验证器与TextMate 2集成

    在使用 JavaScript验证器。 产品特点 保存文件时自动进行验证,并按需进行验证。 使用ESLint --fix命令自动修复错误。 错误和警告显示在TextMate装订线中。 (可选)获得报告,列出错误和警告,并提供指向的相关...

    modifier:JavaScript验证器修饰符

    JavaScript验证器/修饰符可在现代浏览器和Node.js中使用。 API一目了然 要求 var Modifier = require ( 'modifier' ) ; // in Node.js 使其为整数 var num = Modifier . integer ( "10.3" ) ; console . assert ...

    JavaScript验证用户登录

    JavaScript验证用户登录 JavaScript验证用户登录 JavaScript验证用户登录

    javascript特效 表单验证

    二、JavaScript验证基本原理 JavaScript可以通过监听表单元素的事件(如onsubmit、onchange等)来执行验证逻辑。当用户填写或修改表单字段时,对应的验证函数会被调用,检查输入内容是否符合预设规则。 三、...

    javascript验证

    JavaScript验证是Web开发中不可或缺的一环,主要用于前端数据的校验和用户输入的合法性检查,以确保用户提交的信息准确无误。这篇博文链接虽然没有提供具体的内容,但我们可以通过标题和标签来推测其可能涉及的知识...

    javascript验证日期格式

    其中,日期格式验证是JavaScript中一个常见且实用的功能,它可以帮助开发者确保用户输入的日期符合预设的格式,从而避免数据处理中的错误。本文将深入探讨如何使用JavaScript来验证日期格式,理解其工作原理,并分析...

    一个简单的带有javascript验证的注册页面

    本项目是一个关于“一个简单的带有javascript验证的注册页面”,主要关注的是前端验证技术,利用JavaScript语言来确保用户输入的数据符合特定的要求,提高用户体验并减轻服务器端的压力。 JavaScript是一种在客户端...

    javascript之validate验证脚本

    这些属性与JavaScript验证结合,可以提供更健壮的验证机制。 8. **异步验证**:对于需要服务器参与的复杂验证,如用户名是否已存在,可以使用Ajax异步请求来进行。这不影响用户界面的响应速度,提高了用户体验。 9...

    javascript验证框架

    JavaScript验证框架是Web开发中不可或缺的一部分,主要用于在客户端进行数据验证,提高用户体验并减轻服务器端的压力。这些框架允许开发者创建自定义验证规则,确保用户输入的数据符合预设的格式和条件,例如邮箱...

    javascript表单验证器三方库.zip

    "javascript表单验证器三方库.zip" 是一个包含第三方JavaScript库的压缩包,专门用于表单数据验证。这种库通常提供了一套完整的验证规则和方法,帮助开发者轻松地实现对用户输入的检查,避免无效或恶意的数据进入...

    JavaScript客户端验证和页面特效制作(JavaScript)

    JavaScript是Web开发中不可或缺的一部分,尤其在客户端验证和页面特效制作方面发挥着重要作用。这个资料包,名为"JavaScript客户端验证和页面特效制作(JavaScript)",很可能是北大青鸟ACCP5.0课程的一个部分,旨在...

    动态javaScript验证

    动态JavaScript验证是Web开发中一个重要的技术,它主要用于在客户端增强用户输入的验证,提高用户体验,减少不必要的服务器负载。在Web表单提交之前,通过JavaScript进行数据验证,可以即时反馈错误信息,帮助用户...

    javascript验证方法,自己写的, 都是经常用的,欢迎下载

    JavaScript验证主要分为客户端验证和服务器端验证。客户端验证通常通过JavaScript在用户提交表单前进行,可以实时反馈错误信息,减少不必要的服务器请求,提高响应速度。而服务器端验证则是为了防止恶意用户绕过...

    JavaScript表单验证控制代码大全

    JavaScript是Web开发中不可或缺的一部分,尤其在前端交互和用户数据验证方面起着至关重要的作用。"JavaScript表单验证控制代码大全"是一个集成了多种表单验证技术和策略的资源集合,帮助开发者有效地确保用户输入的...

    javascript表单验证 正则表达式验证表单

    比较实用的javascript做的表单验证,验证的表单域包括用户名、密码、密码确认、密码提示问题、邮箱、手机号码、身份证。表单域基本通过获得焦点显示提示信息,失去焦点进行验证,还有提交表单验证。提交表单先进行...

    javascript验证表单大全

    "JavaScript验证表单大全"这个主题涵盖了许多关于如何使用JavaScript有效地验证用户输入表单数据的知识。在Web应用程序中,表单验证对于确保用户提交的数据符合预期格式和规则至关重要,从而避免无效数据的提交,...

Global site tag (gtag.js) - Google Analytics