当前位置:编程学习 > JAVA >>

jquery做表单验证

为什么jquery做表单验证,第一遍如果输入不合法的内容,提示输入不合法,第二次输入核发的,错误提示依然存在?是为啥呢function checkTdValue(){
var forms=document.submitForm1;
for(var index=0;index<forms.elements.length;index++){
var ele=forms.elements[index];
var eleTitle=ele.title;
var eleAlt=ele.alt;
var obj=$("input[title="+eleTitle+"]");
var obj2=$("textarea[title="+eleTitle+"]");
var regex = new RegExp("dhhm","g");
var regsfz = new RegExp("sfz","g");
var regnumber = new  RegExp("number","g");
//var objs = new Array(obj,obj2);
var node;
if($.trim(ele.value)==""){
obj.each(function(){
node="<span><font color='red'>请输入"+eleTitle+"</font></span>";
$(this).siblings().remove();
$(this).after(node);
return false;
}).bind("keydown",function(){
$(this).siblings().remove();
});
obj2.each(function(){
node="<span><font color='red'>请输入"+eleTitle+"</font></span><br>";
$(this).siblings().remove();
$(this).after(node);
return false;
}).bind("keydown",function(){
$(this).siblings().remove();
});
}else{
var objAlt=$("input[alt='"+eleAlt+"']");
if(regex.test(eleAlt)){
var regex2 = new RegExp("^[\\d,\\-,\\+,\\ ]+$","g");
objAlt.each(function(){
if(!(regex2.test(objAlt.val()))){
node="<span><font color='red'>"+eleTitle+"有误。请输入正确的号码。</font></span>";
$(this).siblings().remove();
$(this).after(node);
return false;
}
});
}

if(regnumber.test(eleAlt)){
var rex = new RegExp("/[^0-9]/","g");
objAlt.each(function(){
if(!(rex.test(objAlt.val()))){
node="<span><font color='red'>"+eleTitle+"有误。请输入数字。</font></span>";
$(this).siblings().remove();
$(this).after(node);
return false;
}
});
}
if(regsfz.test(eleAlt)){
   var rex = new RegExp("^\\d{15}|\\d{17}[0-9,X]$","g");
   objAlt.each(function(){
if(!(rex.test(objAlt.val()))){
node="<span><font color='red'>"+eleTitle+"有误。请输入15位或者18位公民身份号码!</font></span>";
$(this).siblings().remove();
$(this).after(node);
return false;
}
var s = ele.value;
if(s.length == 18 && s.substr(17) != getSfzLastCode(s.substring(0,17))){
var err = "校验码有误";
node="<span><font color='red'>身份证"+err+"</font></span>";
$(this).siblings().remove();
$(this).after(node);
return false;
}
if(s.length == 15){
s = sfz15to18(s);
}
var birthErrMsg = __checkDate__(getBirth(s));
if(birthErrMsg != "") {
var err = "出生日期有误";
node="<span><font color='red'>身份证"+err+"</font></span>";
$(this).siblings().remove();
$(this).after(node);
return false;
}
});
}
}

}
} --------------------编程问答-------------------- 2种情况
(1)正则不对
(2)成功之后没有对<span>元素进行移除 --------------------编程问答-------------------- 你可以再测试一下,第一次输入对的,第二次输入不对的,会不会提示是对的? --------------------编程问答--------------------
引用 2 楼 yanxing2012 的回复:
你可以再测试一下,第一次输入对的,第二次输入不对的,会不会提示是对的?

如果测试是对的,估计就是一楼的第二种情况 --------------------编程问答--------------------
引用
如果测试是对的,估计就是一楼的第二种情况

补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,