代码为什么没有出现效果

xiaofan_sap 2009-03-26 01:35:49
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<meta charset="gb2312">
<style type="text/css">
ul.errors
{
list-style:none;
background:#ffcece;
padding:3px;
margin:3px 0px 3px 70px;
font-size:0.9em;
width:165px;
}
form
{
font-family:Arial;
font-size:14px;
width:300px;
}
fieldset
{
border:1px solid #ccc;
margin-bottom:10px;
}

fieldset.login input
{
width:125px;
}
legend
{
font-weight:bold;
font-size:1.1em;
}
label
{
display:block;
width:80px;
text-align:right;
float:left;
padding-right:10px;
margin:5px 0;

}

input
{
margin:5px 0;
}

input.text
{
padding:0 0 0 3px;
width:172px;
}

input.submit
{
margin:15px 0 0 70px;
}


</style>
<script language=javascript >
/*
function checkRequired(elem)
{
if(elem.type=="checkbox"||elem.type=="radio")
return getInputsByName(elem.name).numChecked;
else
return elem.value.length>0&&elem.value!=elem.defaultValue;
}

function getInputsByName(name)
{
var results=[];
results.numChecked=0;
var input=document.getElementsByTagName("input");
for(var i=0;i<input.length;i++)
{
if(input[i].name==name)
{
results.push(input[i]);

if(input[i].checked)
{
results.numChecked++;
}
}
}
return results;
}


function checkEmail(elem)
{
return elem.value==''||/^[a-z0-9_+.-]+\@([a-z0-9-]+\.)+[a-z0-9]{2,4}$/i.test(elem.value);

}
*/
var errMsg=
{

required:
{
msg:"This field is required",
test:function(obj,load)
{
return obj.value.length>0||load||obj.value==obj.defaultValue;
}
},

email:
{
msg:"Not a valid email address",
test:function(obj)
{
return !obj.value||/^[a-z0-9_+.-]+\@([a-z0-9-]+\.)+[a-z0-9]{2,4}$/i.test(obj.value);
}
},

phone:
{
msg:"Not a valid phone number",
test:function(obj)
{
var m=/(\d{3}).*(\d{3}).*(d{3}).*(\d{4})/.exec(obj.value);

if(m) obj.value="("+m[1]+")"+m[2]+"-"+m[3];

return !obj.value||m;
}
},

date:
{
msg:"Not a valid date",
test:function(obj)
{
return !obj.value||/^\d{2}\/\d{2}\/\d{2,4}$/.test(obj.value);
}
},

url:
{
msg:"Not a valid URL",

test:function(obj)
{
return !obj.value||obj.value=='http://'||/^http?:\/\/([a-z0-9-]+\.)+[a-z0-9]{2,4}.*$/.test(obj.value);
}
}


}


function validateForm(form,load)
{
var valid=true;

for(var i=0;i<form.elements.length;i++)
{
hideErrors(form.elements[i]);
if(!validateField(form.elements[i],load))
valid=false;
}
return valid;
}


function validateField(elem,load)
{
var errors=[];
for(var name in errMsg)
{
var re=new RegExp("(^|\\s)"+name+"(\\s|$)");
//alert(elem.className);
alert(re.test(elem.className));
alert(errMsg[name].test(elem,load));
if(re.test(elem.className)&&!errMsg[name].test(elem,load))
{
//alert(re.test(elem.className));
errors.push(errMsg[name].msg);
}
}

if(errors.length)
showErrors(elem,errors);
return errors.length>0;
}

function hideErrors(elem)
{
var next=elem.nextSibling;
if(next&&next.nodeName=="UL"&&next.className=="errors")
elem.parentNode.removeChild(next);
}

function showErrors(elem,errors)
{
var next=elem.nextSibling;
if(next&&(next.nodeName!="UL"||next.className!="errors"))
{
next=document.createElement("ul");
next.className="errors";

elem.parentNode.insertBefore(next,elem.nextSibling);
}

for(var i=0;i<errors.length;i++)
{
var li=document.createElement("li");
li.innerHTML=error[i];
next.apppendChild(li);
}
}




window.onload=function(form)
{
/*
document.getElementsByTagName("form")[0].onsubmit=function()
{
var elem=document.getElementById("age");
if(!checkRequired(elem))
{
alert("空です");
return false;
}
var elem=document.getElementById("name");
if(!checkRequired(elem))
{
alert("空です");
return false;
}

var elem_email=document.getElementById("email");
if(!checkEmail(elem))
{
alert("failed!");
return false;
}
}*/
validateForm(document.getElementsByTagName("form")[0],false);
}

</script>
</HEAD>
<BODY >
<form action="" method="post">
<fieldset class="login">
<legend>Login Information</legend>
<label for ="username" class="hover">UserName</label>
<input type="text" id="userName" class="required text"></br>
<label for="password" class="hover">Password</label>
<input type="password" id="password" class="required text">
</fieldset>
<fieldset >
<legend>Personnal Information</legend>
<label for="name">Name</label>
<input type="text" id="name" class="required text"></br>

<label for="email">Email</label>
<input type="text" id="email" class="required email text"></br>


<label for="date">Date</label>
<input type="text" id="date" class="required date text"></br>


<label for="url">Website</label>
<input type="text" id="url" class="url text" value="http://"></br>


<label for="phone">Phone</label>
<input type="text" id="phone" class="phone text"></br>


<label for="age">Over 13?</label>
<input type="checkbox" id="age" name="age" value="yes"></br>
<input type="submit" value="Submit Form" id="submit" class="submit">




</fieldset>

</form>
</BODY>
</HTML>
...全文
72 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
z109876543210 2009-03-26
  • 打赏
  • 举报
回复
表单验证?
http://hi.baidu.com/lael80/blog/item/94da23c766c12edfd0006072.html
xiaofan_sap 2009-03-26
  • 打赏
  • 举报
回复
这是个验证代码 ,运行的效果是:如果email输入格式错了 ,它会在他的下面加以行显示错误信息,把那个alert去掉就行
jol_boy 2009-03-26
  • 打赏
  • 举报
回复
115行改为return (obj.value!=null)||load||(obj.value==obj.defaultValue);
运行就弹了好多msgbox
jol_boy 2009-03-26
  • 打赏
  • 举报
回复
你说的效果是什么,弹了N个true和false出来?

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧