问题描述
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns=" http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title><script language="JavaScript" type="text/javascript" src="jquery.js"></script><style></style><script language="JavaScript" type="text/javascript"><!--/*要解决的问题: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('收藏温馨提示:nn' + msg);objErr.after(msg); objErr.focus();}else{$('form').submit();}}--></script></head><body><form id="writeform" method="get"> <strong>【签写表单】</strong><br /><input type="hidden" name="action" id="action" value="write" />标题:<input type="text" name="title" id="title" /><br />昵称:<input type="text" name="guest" id="guest" /><br /> 性别:<select name="sex" id="sex"> <option value="">选择</option> <option value="男">男</option> <option value="女">女</option> </select><br /> 课程:ASP<input type="checkbox" name="subject" class="subject" value="asp" /> JQ<input type="checkbox" name="subject" class="subject" value="jq" /><br />内容:<textarea name="content" id="content"></textarea><br /> <input type="button" name="Submit" id="Submit" value="提交" onclick="checkform()" /><br /> </form></body></html> 问题补充:谢谢您的回复,说得很明确,可是我第一个就实现不了呀,第二个还没看,继续中。。。Rainbow702 写道
解决方案
引用/*要解决的问题:1. 连续点击提交按钮,错误内容会重复出现,要求无论点击多少次都只出现一次2. 课程错误时会在每一个课程后出现提示,要求只在最后一个出现提示内容3. 焦点不起作用,要求实现某一项错误后焦点会自动转移到该对象上(好象这个问题解决了,呵)*/ 第一个:加一个变量 var error = false; 用来标记是否出现过了问题,true 表示出现过, false 表示没有出现过。然后,每次 check 的时候,先判断这个变量,若为 false 那么就继续你对各个变量的合法性check,若为 true ,直接返回不做什么检查。第二个:JQuery 中有一个选择器可以选择最后一个元素的,如$("p:last")就是选择最后一个 p 元素,所以,你可以这么来:var subTemp = $('.subject :last'); subTemp.after(msg);或者像下面这样我觉得应该也可以:subject[subject.length-1].after(msg); 第三个:你已经解决。
解决方案二:
引用下面表单验证提交时错误提示出现多次,请帮助以上是你的标题,你指的“错误提示出现多次是指什么现象”?是指 alert 出现多次,还是指别的?把现象截个图上来吧。
解决方案三:
引用//error = true; 不知道你的括号有没有配对的正确。
解决方案四:
引用第一个问题设了标记可是不管用呀请把你设了标记之后的代码贴出来。