简单的 jQuery 前台评论表单验证
WordPress 当然也有表单的验证,不过大家都知道用户体验一点都不好,页面发生跳转,有时还会把表单清空了,而前台表单认证显得非常有必要了。以下是我写的通过改变文本框背景颜色提示用户输入内容,WordPress 只要把以下代码放到 js 文件里就能工作了。验证由点击提交按钮触发,工作原理看注释。
//表单验证 $(function(){ $('#submit').click(function(){ var $author=$('#author').val(); //名称 var $email=$('#email').val(); //邮箱 var $url=$('#url').val(); //网址 var $textarea=$('textarea:first').val(); //评论 var $errorNo=0; if($author==""){ $('#author').css("background","#F9A4A4"); $errorNo+=1; }else{ $('#author').css("background","#FFF"); } if($email==""){ $('#email').css("background","#F9A4A4"); $errorNo+=1; }else if(!/^(?:[a-zd]+[_-+.]?)*[a-zd]+@(?:([a-zd]+-?)*[a-zd]+.)+([a-z]{2,})+$/i.test($email)){ $('#email').css("background","#F9A4A4"); $errorNo+=1; }else{ $('#email').css("background","#FFF"); } if($url!="" && !/^http://[A-Za-z0-9]+.[A-Za-z0-9]+[/=?%-&_~`@[]':+!]*([^<>""])*$/.test($url)){ $('#url').css("background","#F9A4A4"); $errorNo+=1; }else{ $('#url').css("background","#FFF"); } if($textarea==""){ $('textarea:first').css("background","#F9A4A4"); $errorNo+=1; }else{ $('textarea:first').css("background","#FFF"); } if($errorNo>0){ return false; } }); });
这样一个非常简单的表单验证就出来了~效果就是小博现在这样,欢迎指正改进~
PS:8月14日修正,更严密的正则表达式。
PS2:2013年10月18日修正,真是弄巧反拙,简单复杂化……现已修正。
2010年 8月 12日