Yii框架中jquery表单验证插件用法示例


Posted in PHP onOctober 18, 2016

本文实例讲述了Yii框架中jquery表单验证插件用法。分享给大家供大家参考,具体如下:

运行效果图如下:

Yii框架中jquery表单验证插件用法示例

视图层:

<!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>

控制器(验证唯一性):

//验证姓名唯一性
public function actionOnly(){
  $u_name=Yii::$app->request->get('u_name');
  $login=Yii::$app->db;
  //查询数据
  $sql="select * from login where u_name='$u_name'";
  $res=$login->createCommand($sql)->execute();
  if($res)
  {
    echo false;
  }
  else
  {
    echo true;
  }
}

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
实用函数8
Nov 08 PHP
php disk_free_space 返回目录可用空间
May 10 PHP
php中怎么搜索相关联数组键值及获取之
Oct 17 PHP
一个PHP二维数组排序的函数分享
Jan 17 PHP
深入讲解PHP的Yii框架中的属性(Property)
Mar 18 PHP
[原创]php求圆周率的简单实现方法
May 30 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
php框架CodeIgniter主从数据库配置方法分析
May 25 PHP
PHP实现的日历功能示例
Sep 01 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
Feb 14 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
Jun 08 PHP
php+layui数据表格实现数据分页渲染代码
Oct 26 PHP
Yii框架实现邮箱激活的方法【数字签名】
Oct 18 #PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
Oct 18 #PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
Oct 18 #PHP
利用PHP绘图函数实现简单验证码功能的方法
Oct 18 #PHP
Yii针对添加行的增删改查操作示例
Oct 18 #PHP
Yii遍历行下每列数据的方法
Oct 17 #PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
Oct 17 #PHP
You might like
PHP UTF8编码内的繁简转换类
2009/07/20 PHP
php下过滤html代码的函数 提高程序安全性
2010/03/02 PHP
PHP中exec函数和shell_exec函数的区别
2014/08/20 PHP
PHP 表单提交及处理表单数据详解及实例
2016/12/27 PHP
JavaScript字符串String和Array操作的有趣方法
2012/12/18 Javascript
Javascript实现关联数据(Linked Data)查询及注意细节
2013/02/22 Javascript
NodeJS制作爬虫全过程(续)
2014/12/22 NodeJs
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
详解JS中Array对象扩展与String对象扩展
2016/01/07 Javascript
js闭包引起的事件注册问题介绍
2016/03/29 Javascript
基于node实现websocket协议
2016/04/25 Javascript
微信小程序 for 循环详解
2016/10/09 Javascript
JavaScript动态数量的文件上传控件
2016/11/18 Javascript
AngularJS中run方法的巧妙运用
2017/01/04 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
Bootstrap 响应式实用工具实例详解
2017/03/29 Javascript
IntersectionObserver实现图片懒加载的示例
2017/09/29 Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
2018/09/22 Javascript
详解使用WebPack搭建React开发环境
2019/08/06 Javascript
Vue2.0 $set()的正确使用详解
2020/07/28 Javascript
Python实现把数字转换成中文
2015/06/29 Python
Python实现递归遍历文件夹并删除文件
2016/04/18 Python
python 统计代码行数简单实例
2017/05/04 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
python paramiko利用sftp上传目录到远程的实例
2019/01/03 Python
详解Django-restframework 之频率源码分析
2019/02/27 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
如何通过雪花算法用Python实现一个简单的发号器
2019/07/03 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
2019/12/26 Python
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
Alba Moda瑞士网上商店:独家意大利时尚女装销售
2016/11/28 全球购物
医生自荐信
2013/10/11 职场文书
2014年度个人工作总结范文
2015/03/09 职场文书
2015年感恩母亲节活动方案
2015/05/04 职场文书
上学路上观后感
2015/06/16 职场文书