喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

$5.95 Web Hosting     

上一主题 下一主题
 11  1/2  1  2  > 
     
标题: [原创] 打造最简单的JS验证!  
 
wwwc (wwwc)
高级会员
Rank: 4
高级会员



UID 19456
精华 2
积分 947
帖子 900
金钱 927 喜悦币
威望 20
人脉 0
阅读权限 50
注册 2003-4-9
状态 离线
[广告]: 代充Paypal帐号美元
打造最简单的JS验证!

我的JS不标准,大家见效了,我一直在用在IE上,前年的时候当时公司做网页,经常要验证很多东西,要写很多验证函数,麻烦死了我就写了一个专门来做验证的!以后免得写怎么复杂了!

<?php
var form_info     = [];  //验证信息
//得到ID
function $(id){
    return 
document.getElementById(id);
}
//得到表单对象
function form_getform(id){
    if(
typeof(id)=="object"){
        return 
id;
    }else if($(
id)){
        return $(
id);
    }else{
        return 
document.forms[0];
    }
}
//表单验证设置
function form_setfiled(name,type,value,msg){
    for(var 
i=0;i<form_info.length;i++){
        if(
form_info[i][0]==name){
            
form_info[i] = new Array(name,type,value,msg);
            return 
true;
        }
    }
    
form_info[form_info.length] = new Array(name,type,value,msg);
}
//表单验证函数
function form_validate(form){
    
form form_getform(form);
    for(var 
i=0;i<form_info.length;i++){
        if(
form[form_info[i][0]]){
            if(
form_info[i][1] == "reg"){
                var 
reg=0;
                ;try{
                    eval(
'reg=form[form_info[i][0]].value.match(/^'+form_info[i][2]+'$/)==null;');
                    if(
reg){
                        
alert(form_info[i][3]);
                        
form[form_info[i][0]].focus();
                        return 
false;
                    }
                }catch(
e){
                    
alert('reg=form[form_info[i][0]].value.match(/^'+form_info[i][2]+'$/)==null;');
                    return 
false;
                }
            }else if(
form_info[i][1] == "exe"){
                var 
logic=0;
                ;try{
                    eval(
'logic=('+form_info[i][2].replace(/$/g,'form[form_info[i][0]].value')+');');
                    if(
logic){
                        
alert(form_info[i][3]);
                        
form[form_info[i][0]].focus();
                        return 
false;
                    }
                }catch(
e){
                    
alert('logic=('+form_info[i][2].replace(/$/g,'form[form_info[i][0]].value')+');');
                    return 
false;
                }
            }
        }
    }
    return 
true;
}
?>
我说下当时代码为什么要怎么
form_getform(form)看起来可能没什么用,当时我写的时候的却遇到这个问题!
form里的onsubmit得到当前的表单对象用(this)就行,当时表单外面用这个却麻烦,要么标识一个ID,如果没标识呢,于是这里我就偷懒写了个form_getform(form),obsubmi里form_getform(this)可以,其他地方设置了ID的话form_getform('login'),如果没设置就用第几个表单form_getform(0)或者form_getform('')都可以.2form_validate的原理是遍历表单的元素,再根据form_info里的验证数据来判断!
简单应用例子

<?php
form_setfiled
('username','reg','w{3,15}','用户名称不合法');
form_setfiled('password','exe','$.length<2','密码至少两个字');
form_setfiled('title','exe','$.length<10','标题不能为空,至少10个字');
这些都定义公用文件里,如果是用户登录验证你之需要
onsubmit
="form_validate(this)"就行了!
如果是文章输入验证,你只要
onsubmit
="form_validate(this)"就行了!
如果是....
你只要onsubmit="form_validate(this)"就行了!
如果你加了什么多的验证呢。公用文件加几个form_setfield就行了!
?>
就说到这了吧,别嫌弃我代码栏,明白我说的意思就行了,思想才是最重要的!
2006-9-30 10:42 AM#1
查看资料  Blog  发短消息  顶部
 
phpqingang
注册会员
Rank: 2
冷月


UID 23517
精华 0
积分 173
帖子 1499
金钱 173 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2003-9-28
来自 水星
状态 离线
[广告]: 代充Paypal帐号美元
在客户端验证不保险,还是在服务器端验证吧
2006-9-30 11:09 AM#2
查看资料  Blog  发短消息  顶部
 
LuckLrj (中国php中的爱因斯坦)
版主
Rank: 7Rank: 7Rank: 7
老会员


UID 64836
精华 0
积分 2323
帖子 3118
金钱 2323 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2005-6-19
状态 离线
[推荐阅读] 一个AJAX做的文本数据库考勤系统
2端都要验证。



学习,工作累了,请访问我的小站,娱乐一下。http://www.52sunny.net
2006-10-1 11:10 AM#3
查看资料  Blog  发短消息  顶部
 
qh663
版主
Rank: 7Rank: 7Rank: 7
中级会员


UID 30020
精华 0
积分 546
帖子 580
金钱 546 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2004-7-13
来自 河源
状态 离线
[推荐阅读] 水塘
是的,两端都验证好。用户体验与安全都要。



五百多篇PHP学习资料
喜悦村BLOG
php团队接兼职项目QQ:80031807
PHP群:768844
2006-10-1 12:42 PM#4
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
wwwc (wwwc)
高级会员
Rank: 4
高级会员



UID 19456
精华 2
积分 947
帖子 900
金钱 927 喜悦币
威望 20
人脉 0
阅读权限 50
注册 2003-4-9
状态 离线
[推荐阅读] 03和LINUX和FREEBSD跑PHP负载能力差多少?


QUOTE:
原帖由 phpqingang 于 2006-9-30 11:09 AM 发表
在客户端验证不保险,还是在服务器端验证吧
服务器端验证是必须的,客户端验证可避免用户无谓的提交!
2006-10-1 04:01 PM#5
查看资料  Blog  发短消息  顶部
 
php5
金牌会员
Rank: 6Rank: 6
中级会员


UID 62897
精华 0
积分 1252
帖子 1100
金钱 1252 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2005-1-3
来自 福建
状态 离线
[推荐阅读] 各位帮帮忙,急!!
ajax 可单方面验证...也许可以节省流量
2006-10-1 05:17 PM#6
查看资料  发短消息  顶部
 
fnet
高级会员
Rank: 4
**村大队书记



UID 65788
精华 0
积分 718
帖子 785
金钱 718 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2005-8-12
状态 离线
[推荐阅读] 哪种ajax组件可以完全解决中文问题
不搓,支持



JAVA
2006-10-1 11:44 PM#7
查看资料  访问主页  发短消息  QQ  顶部
 
applerr
新手上路
Rank: 1



UID 76816
精华 0
积分 0
帖子 11
金钱 0 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-7-21
状态 离线
[推荐阅读] checkbox的问题
双方验证是不一样的
2006-10-2 07:44 PM#8
查看资料  发短消息  顶部
 
aplapl (aplapl)
版主
Rank: 7Rank: 7Rank: 7
版主


UID 17565
精华 2
积分 390
帖子 1035
金钱 370 喜悦币
威望 20
人脉 0
阅读权限 100
注册 2002-11-7
来自 荔枝之乡[url]http://aplapl.
状态 离线
[推荐阅读] 知道URL地址,怎么获取URL首页的keywords和description?

GOOD BOY!




当老鼠遇上猫……
~
粪发行进中·彬畹工作室
永远的初学者

叶子http://aplapl.hwagain.com

不再谈爱情
2006-10-9 08:48 AM#9
查看资料  Blog  发短消息  顶部
 
gouki
注册会员
Rank: 2
一般会员



UID 15556
精华 0
积分 114
帖子 99
金钱 114 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2002-7-29
状态 离线
[推荐阅读] 有没有[判断字符串中是否有汉字]的函数?
try前怎么有个分号?



http://www.cnitblog.com/neatstudio/
http://www.neatcn.com
飞天小肥猪的简单人生
2006-10-9 09:38 AM#10
查看资料  Blog  发短消息  QQ  顶部
 11  1/2  1  2  > 
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.029808 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP