下面表单验证提交时错误提示出现多次,请帮助

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



无标题文档 <!-- /* 要解决的问题: 1. 连续点击提交按钮,错误内容会重复出现,要求无论点击多少次都只出现一次 2. 课程错误时会在每一个课程后出现提示,要求只在最后一个出现提示内容 3. 焦点不起作用,要求实现某一项错误后焦点会自动转移到该对象上(好象这个问题解决了,呵) */ function checkform(){ var msg = ''; var objErr = null; var title = $('#title'); var guest = $('#guest'); var sex = $('#sex'); var subject = $('.subject'); var content = $('#content'); if(title.val().length<1 || title.val().length>10){ msg = '请填写标题,且不超过10个字符!\n' objErr = title; //title.after(msg); }else if(guest.val().length<1 || guest.val().length>5){ msg = '请填昵称,且不超过5个字符!\n' objErr = guest; //guest.after(msg); }else if(sex.val()==''){ msg = '请选择性别!\n' objErr = sex; //sex.after(msg); }else if(subject.filter(':checked').size()==0){ msg = '请选择课程!\n' objErr = subject; //subject.after(msg); }else if(content.val().length<5 || content.val().length>500){ msg = '请填内容,且不超过500个字符!\n' objErr = content; //content.after(msg); } if(msg!=''){ //alert('收藏温馨提示:\n\n' + msg); objErr.after(msg); objErr.focus(); }else{ $('form').submit(); } } -->

【签写表单】
标题:
昵称:
性别:选择男女
课程:ASP JQ
内容:


4个回答

[quote]
/*
要解决的问题:

  1. 连续点击提交按钮,错误内容会重复出现,要求无论点击多少次都只出现一次
  2. 课程错误时会在每一个课程后出现提示,要求只在最后一个出现提示内容
  3. 焦点不起作用,要求实现某一项错误后焦点会自动转移到该对象上(好象这个问题解决了,呵)

*/
[/quote]
第一个:加一个变量 var error = false; 用来标记是否出现过了问题,true 表示出现过, false 表示没有出现过。然后,每次 check 的时候,先判断这个变量,若为 false 那么就继续你对各个变量的合法性check,若为 true ,直接返回不做什么检查。
第二个:JQuery 中有一个选择器可以选择最后一个元素的,如
[code="java"] $("p:last")[/code]就是选择最后一个 p 元素,所以,你可以这么来:
[code="java"]var subTemp = $('.subject :last'); subTemp.after(msg);[/code]
或者像下面这样我觉得应该也可以:[code="java"]subject[subject.length-1].after(msg); [/code]
第三个:你已经解决。

[quote]第一个问题设了标记可是不管用呀[/quote]
请把你设了标记之后的代码贴出来。

[quote]//error = true; [/quote]
不知道你的括号有没有配对的正确。

[quote]下面表单验证提交时错误提示出现多次,请帮助[/quote]
以上是你的标题,你指的“错误提示出现多次是指什么现象”?是指 alert 出现多次,还是指别的?把现象截个图上来吧。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问