JQuery/PHP

jQuery 表单提交前实现同步验证

阿里云

我们在做网站时,经常需要制作各类表单。表单中很多值需要进行验证,今天给学习怎么建网站的学员介绍一下 jquery 表单提交前实现同步验证的方法。

整体代码

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4.     <meta http-equiv="content-type" content="text/html; charset=utf-8">
  5.     <title>jquery表单提交前实现同步验证</title>
  6.     <style>
  7.      .int{ height: 30px; text-align: left; width: 600px; }
  8.      label{ width: 200px; margin-left: 20px; }
  9.      .high{ color: red; }
  10.      .msg{ font-size: 13px; }
  11.      .onError{ color: red; }
  12.      .onSuccess{ color: green; }
  13.     </style>
  14.     <script src="http://code.jquery.com/jquery-latest.js"></script>    
  15. </head>
  16. <body>
  17.     <form method="post" action="#">
  18.         <div class="int">
  19.             <label for="name">姓名:</label>
  20.             <input type="text" id="name" class="required" />
  21.         </div>
  22.         <div class="int">
  23.             <label for="email">邮箱:</label>
  24.             <input type="text" id="email" class="required" />
  25.         </div>
  26.         <div class="int">
  27.             <label for="address">住址:</label>
  28.             <input type="text" id="address" />
  29.         </div>
  30.         <div class="int">
  31.             <input type="submit" value="提交" id="send" style="margin-left: 70px;" />
  32.             <input type="reset" value="重置" id="res" />
  33.         </div>
  34.     </form>
  35.     <script>
  36.         //为表单的必填文本框添加提示信息(选择form中的所有后代input元素)
  37.         $("form :input.required").each(function () {
  38.             //通过jquery api:$("HTML字符串") 创建jquery对象
  39.             var $required = $("<strong class='high'>*</strong>");
  40.             //添加到this对象的父级对象下
  41.             $(this).parent().append($required);
  42.         });
  43.  
  44.         //为表单元素添加失去焦点事件
  45.         $("form :input").blur(function(){
  46.             var $parent = $(this).parent();
  47.             $parent.find(".msg").remove(); //删除以前的提醒元素(find():查找匹配元素集中元素的所有匹配元素)
  48.             //验证姓名
  49.             if($(this).is("#name")){
  50.                 var nameVal = $.trim(this.value); //原生js去空格方式:this.replace(/(^\s*)|(\s*$)/g, "")
  51.                 var regName = /[~#^$@%&!*()<>:;'"{}【】  ]/;
  52.                 if(nameVal == "" || nameVal.length < 6 || regName.test(nameVal)){
  53.                     var errorMsg = " 姓名非空,长度6位以上,不包含特殊字符!";
  54.                     //class='msg onError' 中间的空格是层叠样式的格式
  55.                     $parent.append("<span class='msg onError'>" + errorMsg + "</span>");
  56.                 }
  57.                 else{
  58.                     var okMsg=" 输入正确";
  59.                     $parent.find(".high").remove();
  60.                     $parent.append("<span class='msg onSuccess'>" + okMsg + "</span>");
  61.                 }
  62.             }
  63.             //验证邮箱
  64.             if($(this).is("#email")){
  65.                 var emailVal = $.trim(this.value);
  66.                 var regEmail = /.+@.+\.[a-zA-Z]{2,4}$/;
  67.                 if(emailVal== "" || (emailVal != "" && !regEmail.test(emailVal))){
  68.                     var errorMsg = " 请输入正确的E-Mail住址!";
  69.                     $parent.append("<span class='msg onError'>" + errorMsg + "</span>");
  70.                 }
  71.                 else{
  72.                     var okMsg=" 输入正确";
  73.                     $parent.find(".high").remove();
  74.                     $parent.append("<span class='msg onSuccess'>" + okMsg + "</span>");
  75.                 }
  76.             }
  77.         }).keyup(function(){
  78.             //triggerHandler 防止事件执行完后,浏览器自动为标签获得焦点
  79.             $(this).triggerHandler("blur");
  80.         }).focus(function(){
  81.             $(this).triggerHandler("blur");
  82.         });
  83.  
  84.         //点击重置按钮时,通过trigger()来触发文本框的失去焦点事件
  85.         $("#send").click(function(){
  86.             //trigger 事件执行完后,浏览器会为submit按钮获得焦点
  87.             $("form .required:input").trigger("blur");
  88.             var numError = $("form .onError").length;
  89.             if(numError){
  90.                 return false;
  91.             }
  92.             alert("注册成功!");
  93.         });
  94.     </script>
  95. </body>
  96. </html>
也想出现在这里?联系我们
创客主机

jQuery 表单提交前实现同步验证

已有 148 人购买
查看演示升级 VIP立刻购买

收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!