jquery做表单验证

xu_lan 2013-07-02 02:05:07
为什么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;
}
});
}
}

}
}
...全文
97 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
鄧仁傑 2013-07-04
  • 打赏
  • 举报
回复
引用
如果测试是对的,估计就是一楼的第二种情况
yanxing2012 2013-07-02
  • 打赏
  • 举报
回复
引用 2 楼 yanxing2012 的回复:
你可以再测试一下,第一次输入对的,第二次输入不对的,会不会提示是对的?
如果测试是对的,估计就是一楼的第二种情况
yanxing2012 2013-07-02
  • 打赏
  • 举报
回复
你可以再测试一下,第一次输入对的,第二次输入不对的,会不会提示是对的?
J程A序V员A 2013-07-02
  • 打赏
  • 举报
回复
2种情况 (1)正则不对 (2)成功之后没有对<span>元素进行移除

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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