JS表单检验
作者:Fly 日期:2008-05-21
以前对于表单里字段验证,是通过每个JSP写JS函数。感觉太落后。前段时间找到一个好方法。接下来我介绍具体实现
首先是JSP核心代码
程序代码
<script language="javascript">
function valid(){
var fields= new Array();
var i=0;
fields[i++] = new Field("tests1","测试不能为空",true,0,true,25);
fields[i++] = new Field("test2","测试是电子邮件格式",true,0,true,25);
fields[i++] = new Field("test3","测试是身份证号码",true,0,true,25);
var flag=checkDocument(fields);
return flag;
}
</script>
<form name="form" action="test.action" method="post" onSubmit="return valid();">
<table>
<tr><td><input type="text" name="company.name" id="test1"></td></tr>
<tr><td><input type="text" name="company.email" id="test2"></td></tr>
<tr><td><input type="text" name="company.cer" id="test3"></td></tr>
<tr>
<td align="center" colspan="6"><input type="submit" name="Submit"
value="确 认" />
<button onclick="javascript:history.back();" class=binput>返回</button>
</td>
</tr>
</table>
封装好的一个JS代码:
程序代码
/**
*检查提交的数据是否符合要求
* fields为自定义的对象
* 符合要求时返回true否则提示并返回假
*/
function checkDocument(fields)
{
var strmsg ;
var i = 0;
var count = fields.length;
var field,name, message, isNull, strtype,isLen,strlength;
var thisform;
strmsg = "";
for(i=0; i<count; i++)
{
field = fields;
name=field.name;
message=field.message;
isNull=field.isNull;
strtype=field.strtype;
isLen=field.isLen;
strlength=field.strlength;
thisform=eval("document.getElementById('"+name+"')");
//不允许为空时却为空
if(isNull)
{
if(trim(thisform.value)==""){
strmsg=strmsg+message+"不能为空\n";
}
}
//允许为空时,事实为空时给一个缺省的值0
if(trim(thisform.value)=="") {strtype=0;};
//输入了时判断输入的正确性
switch(strtype){
case 0:
{
break;
}
case 1:
{
if(!isFloat(thisform.value)){
strmsg=strmsg+message+"一定是数字\n";
}
break;
}
case 2:
{
if(!isFloat(thisform.value)){
strmsg=strmsg+message+"一定是数字\n";
}
break;
}
case 3:
{
if(!isPercent(thisform.value)){
strmsg=strmsg+message+"一定是百分数\n";
}
break;
}
case 4:
{
if(!isHZ(thisform.value)){
strmsg=strmsg+message+"一定是汉字\n";
}
break;
}
case 5:
{
if(!notHZ(thisform.value)){
strmsg=strmsg+message+"一定不是汉字\n";
}
break;
}
case 6:
{
if(!isEmail(thisform.value)){
strmsg=strmsg+message+"一定是邮件格式\n";
}
break;
}
case 7:
{
break;
}
case 8:
{
break;
}
case 9:
{
if(!isInt(thisform.value)){
strmsg=strmsg+message+"一定是整型\n";
}
break;
}
case 10:
{
if(!isTime(thisform.value)){
strmsg=strmsg+message+"一定是时间\n";
}
break;
}
case 11:
{
//var ss = isHttp(thisform.value);
//thisform.value = ss;
if(!isHttp(thisform.value)){
strmsg=strmsg+message+"网址格式不对,应该如http://www.szcly.com\n";
}
break;
}
}//end switch
if (isLen){
if(strlen(thisform.value)>strlength){
strmsg=strmsg+message+"字符串太长,超过"+strlength+"位\n";
}
}
}
if(strmsg!=""){
alert(strmsg);
return false;
}
else
{
return true;
}
}
首先是JSP核心代码
程序代码<script language="javascript">
function valid(){
var fields= new Array();
var i=0;
fields[i++] = new Field("tests1","测试不能为空",true,0,true,25);
fields[i++] = new Field("test2","测试是电子邮件格式",true,0,true,25);
fields[i++] = new Field("test3","测试是身份证号码",true,0,true,25);
var flag=checkDocument(fields);
return flag;
}
</script>
<form name="form" action="test.action" method="post" onSubmit="return valid();">
<table>
<tr><td><input type="text" name="company.name" id="test1"></td></tr>
<tr><td><input type="text" name="company.email" id="test2"></td></tr>
<tr><td><input type="text" name="company.cer" id="test3"></td></tr>
<tr>
<td align="center" colspan="6"><input type="submit" name="Submit"
value="确 认" />
<button onclick="javascript:history.back();" class=binput>返回</button>
</td>
</tr>
</table>
封装好的一个JS代码:
程序代码/**
*检查提交的数据是否符合要求
* fields为自定义的对象
* 符合要求时返回true否则提示并返回假
*/
function checkDocument(fields)
{
var strmsg ;
var i = 0;
var count = fields.length;
var field,name, message, isNull, strtype,isLen,strlength;
var thisform;
strmsg = "";
for(i=0; i<count; i++)
{
field = fields;
name=field.name;
message=field.message;
isNull=field.isNull;
strtype=field.strtype;
isLen=field.isLen;
strlength=field.strlength;
thisform=eval("document.getElementById('"+name+"')");
//不允许为空时却为空
if(isNull)
{
if(trim(thisform.value)==""){
strmsg=strmsg+message+"不能为空\n";
}
}
//允许为空时,事实为空时给一个缺省的值0
if(trim(thisform.value)=="") {strtype=0;};
//输入了时判断输入的正确性
switch(strtype){
case 0:
{
break;
}
case 1:
{
if(!isFloat(thisform.value)){
strmsg=strmsg+message+"一定是数字\n";
}
break;
}
case 2:
{
if(!isFloat(thisform.value)){
strmsg=strmsg+message+"一定是数字\n";
}
break;
}
case 3:
{
if(!isPercent(thisform.value)){
strmsg=strmsg+message+"一定是百分数\n";
}
break;
}
case 4:
{
if(!isHZ(thisform.value)){
strmsg=strmsg+message+"一定是汉字\n";
}
break;
}
case 5:
{
if(!notHZ(thisform.value)){
strmsg=strmsg+message+"一定不是汉字\n";
}
break;
}
case 6:
{
if(!isEmail(thisform.value)){
strmsg=strmsg+message+"一定是邮件格式\n";
}
break;
}
case 7:
{
break;
}
case 8:
{
break;
}
case 9:
{
if(!isInt(thisform.value)){
strmsg=strmsg+message+"一定是整型\n";
}
break;
}
case 10:
{
if(!isTime(thisform.value)){
strmsg=strmsg+message+"一定是时间\n";
}
break;
}
case 11:
{
//var ss = isHttp(thisform.value);
//thisform.value = ss;
if(!isHttp(thisform.value)){
strmsg=strmsg+message+"网址格式不对,应该如http://www.szcly.com\n";
}
break;
}
}//end switch
if (isLen){
if(strlen(thisform.value)>strlength){
strmsg=strmsg+message+"字符串太长,超过"+strlength+"位\n";
}
}
}
if(strmsg!=""){
alert(strmsg);
return false;
}
else
{
return true;
}
}
评论: 0 | 引用: 0 | 查看次数: 1651
发表评论
上一篇
下一篇


文章来自:
Tags: 




