这个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定义的模式(如果有的话),如果不匹配,就以一定的方式来提醒用户。
整个验证器的思路非常清晰,代码也很简洁,主要是通过自定义规则可以完成任意的验证方式。
分享到:
相关推荐
验证器-Js 受 Laravel 框架验证器启发的 Javascript 验证器表单用其他语言阅读本文:、如果您习惯于 Laravel 框架的表单验证器,那么这个用 javascript 编写的库可能对您感兴趣。 基本上,我试图将 Laravel ...
在使用 JavaScript验证器。 产品特点 保存文件时自动进行验证,并按需进行验证。 使用ESLint --fix命令自动修复错误。 错误和警告显示在TextMate装订线中。 (可选)获得报告,列出错误和警告,并提供指向的相关...
JavaScript验证器/修饰符可在现代浏览器和Node.js中使用。 API一目了然 要求 var Modifier = require ( 'modifier' ) ; // in Node.js 使其为整数 var num = Modifier . integer ( "10.3" ) ; console . assert ...
JavaScript验证用户登录 JavaScript验证用户登录 JavaScript验证用户登录
二、JavaScript验证基本原理 JavaScript可以通过监听表单元素的事件(如onsubmit、onchange等)来执行验证逻辑。当用户填写或修改表单字段时,对应的验证函数会被调用,检查输入内容是否符合预设规则。 三、...
JavaScript验证是Web开发中不可或缺的一环,主要用于前端数据的校验和用户输入的合法性检查,以确保用户提交的信息准确无误。这篇博文链接虽然没有提供具体的内容,但我们可以通过标题和标签来推测其可能涉及的知识...
其中,日期格式验证是JavaScript中一个常见且实用的功能,它可以帮助开发者确保用户输入的日期符合预设的格式,从而避免数据处理中的错误。本文将深入探讨如何使用JavaScript来验证日期格式,理解其工作原理,并分析...
本项目是一个关于“一个简单的带有javascript验证的注册页面”,主要关注的是前端验证技术,利用JavaScript语言来确保用户输入的数据符合特定的要求,提高用户体验并减轻服务器端的压力。 JavaScript是一种在客户端...
这些属性与JavaScript验证结合,可以提供更健壮的验证机制。 8. **异步验证**:对于需要服务器参与的复杂验证,如用户名是否已存在,可以使用Ajax异步请求来进行。这不影响用户界面的响应速度,提高了用户体验。 9...
JavaScript验证框架是Web开发中不可或缺的一部分,主要用于在客户端进行数据验证,提高用户体验并减轻服务器端的压力。这些框架允许开发者创建自定义验证规则,确保用户输入的数据符合预设的格式和条件,例如邮箱...
"javascript表单验证器三方库.zip" 是一个包含第三方JavaScript库的压缩包,专门用于表单数据验证。这种库通常提供了一套完整的验证规则和方法,帮助开发者轻松地实现对用户输入的检查,避免无效或恶意的数据进入...
JavaScript是Web开发中不可或缺的一部分,尤其在客户端验证和页面特效制作方面发挥着重要作用。这个资料包,名为"JavaScript客户端验证和页面特效制作(JavaScript)",很可能是北大青鸟ACCP5.0课程的一个部分,旨在...
动态JavaScript验证是Web开发中一个重要的技术,它主要用于在客户端增强用户输入的验证,提高用户体验,减少不必要的服务器负载。在Web表单提交之前,通过JavaScript进行数据验证,可以即时反馈错误信息,帮助用户...
JavaScript验证主要分为客户端验证和服务器端验证。客户端验证通常通过JavaScript在用户提交表单前进行,可以实时反馈错误信息,减少不必要的服务器请求,提高响应速度。而服务器端验证则是为了防止恶意用户绕过...
JavaScript是Web开发中不可或缺的一部分,尤其在前端交互和用户数据验证方面起着至关重要的作用。"JavaScript表单验证控制代码大全"是一个集成了多种表单验证技术和策略的资源集合,帮助开发者有效地确保用户输入的...
比较实用的javascript做的表单验证,验证的表单域包括用户名、密码、密码确认、密码提示问题、邮箱、手机号码、身份证。表单域基本通过获得焦点显示提示信息,失去焦点进行验证,还有提交表单验证。提交表单先进行...
"JavaScript验证表单大全"这个主题涵盖了许多关于如何使用JavaScript有效地验证用户输入表单数据的知识。在Web应用程序中,表单验证对于确保用户提交的数据符合预期格式和规则至关重要,从而避免无效数据的提交,...