[转] 一个通用的表单验证程序


一个通用的表单验证程序

sjwxl | 2006-08-03 20:08

在网页设计中经常需要使用javascript验证客户端用户的输入,但很多时候验证的过程又大同小异,十分繁锁,其实可以利用javascript的一些特性,使表单验证变得更轻松.
下边将列出一个基本通用的表单验证程序(现在这个只适合<input>、<textarea>、<select>等含有value属性的元素的验证,不过如果您需要,按此思路添加一些特性就可以了)
我们的通用验证程序需要为表单中的元素定义如下几个属性:
一、checkstr
表示该表单的模式,使用正则表达试
二、
info 当该表单不合法时的提示信息
三、func
当某个表单的值没办法用简单的正则表达式来验证的时候,可以为其单独定义一个验证函数实现复杂的验证过程
四、checkbox_select
该属性定义了某个复选框必须被选择

通过以上几个简单的属性,就可以使网页表单的验证变得轻松了.
比如有以下表单,需要验证其邮编格式,则只需要为元素zip添加两个属性就行了:
checkstr="d{6}"
info="请您输入合法的邮编"

这样,不管有多少表单元素需要验证,您都不需要写程序,只需要简单的为每个需要验证的元素添加checkstr与info属性就可以了.

例(验证邮政编码):
<!--------------------------------------------------------------------------------- -->
<form name=form1 method=post check(this);">
请输入合法的邮编:
<input type=text name=zip size=6 checkstr="d{6}" info="请您输入合法的邮编">
<input type=submit name=okay value=okay>
</form>
<! ------------------------------------------------------------------------------- -->

<script language=javascript>
//程序设计 环球万维科技有限公司
//域名:http://www.netinter.cn
//专业提供域名注册,虚拟主机服务
//以上信息与文章正文是不可分割的一部分,所以如果您要转载本文章,您必须保留以上信息.

function check_form(form){
for (e_item=0;e_item<form.elements.length;e_item++){
form_element=form.elements[e_item];
if (defined(form_element.checkstr)&&defined(form_element.info)){
content=form_element.value;
regpattern=form_element.checkstr;
message=form_element.info;
if (!regcheck(regpattern,c
alert(message);
form_element.focus();
form_element.select();
return false;
}
}
if (defined(form_element.checkbox_select)&&defined(form_element.info)){
if (!form_element.checked){
alert(form_element.info);
return false;
}

}

if (defined(form_element.func)){
try{
eval("runcode="+form_element.func);
if (!runcode) return false;
}catch(e){
alert('错误:关于'+form_element.name+'的函数'+form_element.func+'未定义');
}
}

} //for
return true;
}


function regcheck(patternstr,inputstr){
patternstr="^"+patternstr+"$";
re=new regexp(patternstr,"i");
return re.test(inputstr);
}

function defined(c
return (typeof(c
}

</script>



原文地址:http://41902.blog.51cto.com/post/31858/4649
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值