效果图:

视图层:

<!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" xml:lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title></title>
    <style>
    .error{
        color: red;
    }
    </style>
    <script src="js/jquery.js"></script>
    <script src="js/jquery.validate.js"></script>
    <script src="js/messages_zh.js"></script>
    <script>
// 手机号码验证
jQuery.validator.addMethod("phone", function(value, element) {
var length = value.length;
var mobile = /^1[3,5,8][0-9]{9}$/;
return this.optional(element) || (length == 11 && mobile.test(value));
}, "请正确填写您的手机号码");
// 汉字
jQuery.validator.addMethod("uName", function(value, element) {
var name= /^[\u4e00-\u9fa5]{2,6}$/;
return this.optional(element) || (name.test(value));
}, "请输入2-4个汉字");
//验证邮箱
jQuery.validator.addMethod("email1", function(value, element) {  
    var email= /^\w+@\w+[.]com|cn|net$/;
    return this.optional(element) || (email.test(value));
}, "请正确填写您的邮箱");

//验证名称是否重复(唯一性)
    jQuery.validator.addMethod("onlyUsername", function(value, element) {    
  return eval($.ajax({
     url: "index.php?r=login/only",
     type: 'get',
     async: false,
     data: {
      u_name:value
     }
 }).responseText);
 
    }, "用户名已存在");

//验证邮箱是否重复
    jQuery.validator.addMethod("only2", function(value, element) {    
      return eval($.ajax({
         url: "index.php?r=login/only2",
         type: 'get',
         async: false,
         data: {
            email:value
         }
     }).responseText);
    }, "邮箱已存在");

$.validator.setDefaults({
        submitHandler: function() {
          form.submit();
        }
    });
//表单验证
$().ready(function() {
// 在键盘按下并释放及提交后验证提交表单
  $("#signupForm").validate({
    rules: {
      u_name: "required",
      u_name: {
        required: true,
        uName: true,
        onlyUsername: true
      },
      pwd: {
        required: true,
        minlength: 5
      },
      fruit:{
         required: true,
         minlength: 2
      },
       phone: {
        required: true
      },
      email: {
        required: true,
        email: true,
        email1:true,
        only2:true
      },
      sex:
      {
        required:true,
        minlength:1
      },
       topic: {
        required: "#newsletter:checked",
        minlength: 2
      },
      agree: "required"
    },
    messages: {
      u_name: "请输入您的名字",
      u_name: {
        required: "请输入用户名",
        uName: "用户名必需由2-6个汉字组成",
        onlyUsername:"用户必须唯一"
      },
      pwd: {
        required: "请输入密码",
        minlength: "密码长度不能小于 5 个字母"
      },
      phone: {
        required: "请输入手机号"
      },
      email: {
        required:"请输入一个正确的邮箱",
        only2:"邮箱必须唯一"
      },
      agree: "请接受我们的声明",
      topic: "请选择两个主题",
      sex: "请至少选一个",
      fruit:"请至少选两个水果"
    }
});
});
</script>
</head>
<body>
<center>
<form class="cmxform" id="signupForm" method="post" action="index.php?r=login/register">
  <fieldset>
    <legend>注册页面</legend>
    <p>
      <label for="u_name">名字</label>
      <input id="u_name" name="u_name" type="text">
    </p>
    <p>
      <label for="pwd">密码</label>
      <input id="pwd" name="pwd" type="pwd">
    </p>
    <p>
      <label for="email">Email</label>
      <input id="email" name="email" type="email">
    </p>
    <p>
      <label for="phone">手机号</label>
      <input id="phone" name="phone" type="phone">
    </p>
    <p>
    <input  type="radio" id="sex" value="男" name="sex" />男
    <input  type="radio" id="sex" value="女" name="sex"/>女
    </p>
    <p>
    <select id="fruit" name="fruit[]" multiple="multiple">
    <option value="b">Banana</option>
    <option value="a">Apple</option>
    <option value="p">Peach</option>
    <option value="t">Turtle</option>
    </select>
    </p>
   <p>
      <label for="agree">请同意我们的声明</label>
      <input type="checkbox" class="checkbox" id="agree" name="agree">
    </p>
    <p>
      <label for="newsletter">我乐意接收新信息</label>
      <input type="checkbox" class="checkbox" id="newsletter" name="newsletter">
    </p>
    <fieldset id="newsletter_topics">
      <legend>注意:如果没有勾选“我乐意接收新信息”以下选项会隐藏,但我们这里作为演示让它可见</legend>
      <label for="topic_marketflash">
        <input type="checkbox" id="topic_marketflash" value="学习" name="topic[]">学习
      </label>
      <label for="topic_fuzz">
        <input type="checkbox" id="topic_fuzz" value="唱歌" name="topic[]">唱歌
      </label>
      <label for="topic_digester">
       <input type="checkbox" id="topic_digester" value="跳舞" name="topic[]">跳舞
      </label>
      <label for="topic" class="error">Please select at least two topics you'd like to do.</label>
      </fieldset>
      <p>
      <input class="submit" type="submit" value="注册">
     </p>
    </form>
    </center>
    </body>
    </html>

控制器(验证唯一性):

yii框架中应用jquery表单验证插件的更多相关文章

  1. jquery validate强大的jquery表单验证插件

    jquery validate的官方演示和文档地址: 官方网站:http://jqueryvalidation.org/ 官方演示:http://jqueryvalidation.org/files/ ...

  2. 【jquery】Validform,一款不错的 jquery 表单验证插件

    关于 Validform 这是一款很不错的 jquery 表单验证插件,它几乎能够满足任何验证需求,仅仅一行代码就能搞定整站的表单验证. $('form').Validform(); 为什么能如此方便 ...

  3. 【jQuery基础学习】06 jQuery表单验证插件-Validation

    jQuery的基础部分前面都讲完了,那么就看插件了. 关于jQuery表单验证插件-Validation validation特点: 内置验证规则:拥有必填.数字.E-Mail.URL和信用卡号码等1 ...

  4. jQuery 表单验证插件 jQuery Validation Engine 使用

    jQuery 表单验证插件 jQuery Validation Engine 使用方式如下: 1.引入头文件(注意一定要把jQuery放在前面),指定使用 jQuery Validation Engi ...

  5. (转)强大的JQuery表单验证插件 FormValidator使用介绍

    jQuery formValidator表单验证插件是客户端表单验证插件.在做B/S开发的时候,我们经常涉及到很多表单验证,例如新用户注册,填写个人资料,录入一些常规数据等等.在这之前,页面开发者(J ...

  6. 强大的JQuery表单验证插件 FormValidator使用介绍

    jQuery formValidator表单验证插件是客户端表单验证插件. 在做B/S开发的时候,我们经常涉及到很多表单验证,例如新用户注册,填写个人资料,录入一些常规数据等等.在这之前,页面开发者( ...

  7. 轻量级实用JQuery表单验证插件:validateForm5

    表单验证是Web项目一个必不可少的环节,而且是一项重复的劳动,于是小菜封装了一款简单的表单验证插件,名字叫:validateForm5. validateForm5插件基于Jquery,并向HTML5 ...

  8. Jquery表单验证插件validate

    写在前面: 在做一些添加功能的时候,表单的提交前的验证是必不可少的,jquery的validate插件就还可以,对于基本的需求已经够了.这里记录下基本的用法. 还是写个简单的demo吧 <htm ...

  9. jQuery 表单验证插件——Validation(基础)

    这个插件不错,是用jquery写的.能进行表单验证.我喜欢它的原因是因为 1.他有自带的验证规则 2.你可以自己写验证规则 3.可以通过ajax与后台交互,与后台数据比较.最后返回结果!我在表单中要验 ...

随机推荐

  1. Bluetooth LMP介绍

    目录 1. 介绍 2. 数据包格式(Packet Format) 3. Procedure Rules 4. 通用回应消息(General Response Messages) 5. 设备特性(Dev ...

  2. 蓝牙 BLE GATT 剖析(二)-- GATT UUID and 举例

    generic attribute profile (GATT)The Generic Attributes (GATT) define a hierarchical data structure t ...

  3. nrf51822裸机教程-UART

    art硬件模块通常都有内置的硬件接收buff,比如51822的硬件uart模块图如下 因为通常接收到uart数据时都会做一些处理.比如保存到数据,或者对数据做一些判断之类的. 如果uart的波特率设置 ...

  4. nodejs爬虫

    前言 几个月之前,有同事找我要PHP CI框架写的OA系统.他跟我说,他需要学习PHP CI框架,我建议他学习大牛写的国产优秀框架QeePHP. 我上QeePHP官网,发现官方网站打不开了,GOOGL ...

  5. 设计模式:桥连模式(Bridge)

    定   义:将抽象部分和它的实现部分分离,使它们可以独立的变化. 结构图: 实现类: //Implementor(实现)类 public abstract class Implementor { pu ...

  6. CENTOS安装vnc

    先直接进入命令模式,如果是服务器则可以使用putty连接进入命令行模式. 现在知道的centos下的vnc是:tigervnc,由于是服务端所以我们只安装tigervnc-server即可: yum ...

  7. 在css中定义滚动条样式

    1,Overflow内容溢出时的设置 overflow 水平及垂直方向内容溢出时的设置 overflow-x 水平方向内容溢出时的设置 overflow-y 垂直方向内容溢出时的设置 以上三个属性设置 ...

  8. OO之美4(好代码与坏代码)

    前言:写代码不仅仅要做到能与机器交流,更要做到能和人交流 编码规范:编码规范就是最佳实践,是前辈在编码这件事上的积累和总结,是智慧的延续和工业的实践,如下: ⑴命名规范 ⑵避免行数过多的方法 ⑶代码缩 ...

  9. 实战案例:DIV嵌套

    缘于页面结构语义化的考虑,我们应该慎用div和span这两个通用元素,只有当划分页面结构模块时才使用div元素,因为模块本身是没有任何语义的,他仅代表一块独立的结构.如果想对段落内部分内联元素或文本应 ...

  10. 表单设置line-height,在ff中的不垂直居中问题???

    在ff中有时候input中的line-height,是有bug存在的,设置了line-height,发现文字并不是垂直居中. 1.这是正常现象,不需要刻意调整样式 2.以后尽量使用button,来避免 ...