原生js(form)验证,可以借鉴下思路,应用到工作中

我在工作中时常使用form验证,在目前的公司做的表单验证用的angular的form组件,对于一个有追求的前端,或者应用在移动端写个form验证,引入angular或者jquery组件等验证,难免显得臃肿,最好是原生js吧,轻量。幸运 的等到这一课,加上之前所学,慢慢融合根据需求,应用到工作项目中。。。

	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="author" content="智能社 - zhinengshe.com" />
<meta name="copyright" content="智能社 - zhinengshe.com" />
<title>智能社 - www.zhinengshe.com</title>
<style>
input{ border:1px solid #ccc;}
.ok{ border-color:green;}
.error{ border-color:red;}

</style>
<script src="checkForm.js"></script>
<script>

window.onload = function(){
	checkForm("form1");
};
</script>
</head>

<body>

<form id="form1" action="http://www.zhinengshe.com/">
	用户名:<input type="text" name="username" value=""/><br /><br />
	电话号码:<input type="text" name="tel" value="010-84025890"/><br /><br />
	邮箱:<input type="text" name="email" value="[email protected]"/><br /><br />
	年龄:<input type="text" name="age" value=""/><br /><br />

	<input type="submit"/>
</form>

</body>
</html>

  

//版权 北京智能社©, 保留所有权利

var json = {
    username:/^[a-z][a-z0-9_\-$]{5,31}$/i,
    tel:/^(0[1-9]\d{1,2}-)?[1-9]\d{6,7}$/,
    email:/^\[email protected][a-z0-9\-]+(\.[a-z]{2,6}){1,2}$/i,
    age:/^(1[6-9]|[2-9]\d|100)$/
};

function checkForm(id){

    var oForm = document.getElementById(id);
    var aInput = oForm.children;

    for(var i = 0; i < aInput.length; i++){
        var re = json[aInput[i].name];

        if(re){
            (function(re){
                aInput[i].onblur = function(){

                    checkText(re,this);
                };
            })(re);
        }
    }

    function checkText(re,oText){

        if(re.test(oText.value)){
            oText.className = "ok";
            return true;
        } else {
            oText.className = "error";
            return false;
        }
    }

    oForm.onsubmit = function(){

        var bOk = true;
        for(var i = 0; i < aInput.length; i++){
            var re = json[aInput[i].name];

            if(re){

                if(checkText(re,aInput[i]) == false){
                    bOk = false;
                }
            }
        }

        if(bOk == false){
            return false;
        }

    };

}

时间: 2024-08-14 10:19:17

原生js(form)验证,可以借鉴下思路,应用到工作中的相关文章

[代码笔记]原生JS实现验证框架 checkFun(待优化)

;(function(){ /** 验证框架 checkFun * 使用方法: * <input class="required" type="text" data-valid="isNonEmpty||isEmail" data-error="email不能为空||邮箱格式不正确" id="" /> * 1.需要验证的元素都加上[required]样式,当然这个required可以当参数传递,

用原生JS实现的一个导航下拉菜单,下拉菜单的宽度与浏览器视口的宽度一样(js+html+css)

这个导航下拉菜单需要实现的功能是:下拉菜单的宽度与浏览器视口的宽度一样宽:一级导航只有两项,当鼠标移到一级导航上的导航项时,相应的二级导航出现.在本案例中通过改变二级导航的高度来实现二级导航的显示和消失.为了便于理解我画了一个图,如下: 在这个案例主要用到的知识有:设置定时器,清除定时器,mouseout和mouseover事件,另外还有css中position相关知识.本案例分为两部分讲解.第一部分html和css,第二部分js. 一. html和css 将导航这个导航条包裹在一个div中,这

原生js 滑块验证

<div class="box"> <div class="bg"></div> <div class="btn"></div> <div class="text">滑动验证</div></div>   原文地址:https://www.cnblogs.com/yaomengli/p/10226029.html

原生JS 表单提交验证器

一.前言 最近在开发一个新项目,需要做登陆等一系列的表单提交页面.在经过“缜密”的讨论后,我们决定 不用外部流行的框架,如bootstrap,由于我负责的模块 仅仅是其中的一部分,因此少数服从多数,无奈只能抛弃bootstrap等提供的布局,样式以及验证等一些列如此方便的组件,(他们拒绝使用的原因也令人发省). 那么问题就来了. 二.设计理念 我们都知道,在抛开外部框架,仅仅用JS+css+html 去开发一个页面,是很复杂的,尤其是在没有美工,前台的情况下.其实bootstrap 在一定程度上

Eclipse去除js(JavaScript)验证错误

这篇文章主要是对Eclipse去除js(JavaScript)验证错误进行了介绍.在Eclipse中,js文件常常会报错.可以通过如下几个步骤解决 第一步: 去除eclipse的JS验证: 将windows->preference->Java Script->Validator->Errors/Warnings-> Enable Javascript Sematic validation前面的勾去掉; 第二步: 右键项目 -> properties -> Buil

原生js实现拖动滑块验证

拖动滑块验证是现在的网站随处可见的,各式各样的拖动法都有. 下面实现的是某宝的拖动滑块验证: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> .drag{position: relative;

原生JS实现分页效果2.0(新增了上一页和下一页,添加当前元素样式)

虽然写的很烂,但至少全部都是自己写的,因为这个没有固定的顺序,所以就没有封装,如果你技术好的话,可以你写的分享给我,谢谢. <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>原生JS实现分页效果</title> <style> body{ margin:100px 200px; } #page{ m

React.js实现原生js拖拽效果及思考

一.起因&思路 不知不觉,已经好几天没写博客了...近来除了研究React,还做了公司官网... 一直想写一个原生js拖拽效果,又加上近来学react学得比较嗨.所以就用react来实现这个拖拽效果. 首先,其实拖拽效果的思路是很简单的.主要就是三个步骤: 1.onmousedown的时候,启动可拖拽事件,记录被拖拽元素的原始坐标参数. 2.onmousemove的时候,实时记录鼠标移动的距离,结合被拖拽元素第一阶段的坐标参数,计算并设置新的坐标值. 3.onmouseup的时候,关闭可拖拽事件

跨浏览器的placeholder – 原生JS版

转自来源 : http://www.ifrans.cn/placehoder/ 跨浏览器的placeholder – 原生JS版 html5为input元素新增了一个属性”placeholder”,提供对输入字段预期值的提示信息,input为空且未获得焦点时显示,获得焦点时消失,非常实用.目前,大部分现代浏览器都对placeholder属性提供了支持,IE10也是支持的.如果需要使IE6~IE9等浏览器支持placeholder,只有借助js了. 在这些不支持原生placeholder属性的浏览