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 相关文章推荐
在Windows版的PHP中使用ADO
Oct 09 PHP
关于在php.ini中添加extension=php_mysqli.dll指令的说明
Jun 14 PHP
wiki-shan写的php在线加密的解密程序
Sep 07 PHP
php读取xml实例代码
Jan 28 PHP
php中serialize序列化与json性能测试的示例分析
Apr 27 PHP
PHP 获取文件权限函数介绍
Jul 11 PHP
php自定义函数截取汉字长度
May 15 PHP
PHP实现采集中国天气网未来7天天气
Oct 15 PHP
PHP使用flock实现文件加锁的方法
Jul 01 PHP
thinkPHP实现将excel导入到数据库中的方法
Apr 22 PHP
PHP使用Redis实现防止大并发下二次写入的方法
Oct 09 PHP
PHP安全之register_globals的on和off的区别
Jul 23 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
js下函数般调用正则的方法附代码
2008/06/22 PHP
php的数组与字符串的转换函数整理汇总
2013/07/18 PHP
php去除数组中重复数据
2014/11/18 PHP
关于PHP中字符串与多进制转换函数的实例代码
2016/11/03 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
2019/04/30 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
2019/09/30 PHP
JQuery 获取和设置Select选项的代码
2010/02/07 Javascript
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
JavaScript通过事件代理高亮显示表格行的方法
2015/05/27 Javascript
Jquery实现瀑布流布局(备有详细注释)
2015/07/31 Javascript
功能强大的Bootstrap效果展示(二)
2016/08/03 Javascript
easyui form validate总是返回false的原因及解决方法
2016/11/07 Javascript
详解webpack解惑:require的五种用法
2017/06/09 Javascript
浅谈vue引入css,less遇到的坑和解决方法
2018/01/20 Javascript
Vue 实现双向绑定的四种方法
2018/03/16 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
express中static中间件的具体使用方法
2019/10/17 Javascript
浅析Vue下的components模板使用及应用
2019/11/27 Javascript
js实现拖拽与碰撞检测
2020/09/18 Javascript
用Python中的字典来处理索引统计的方法
2015/05/05 Python
Python中操作文件之write()方法的使用教程
2015/05/25 Python
python dict.get()和dict['key']的区别详解
2016/06/30 Python
Python3安装Pymongo详细步骤
2017/05/26 Python
python实现kNN算法
2017/12/20 Python
面向初学者的Python编辑器Mu
2018/10/08 Python
用python实现前向分词最大匹配算法的示例代码
2020/08/06 Python
Python 远程开关机的方法
2020/11/18 Python
python des,aes,rsa加解密的实现
2021/01/16 Python
html5+css3之动画在webapp中的应用
2014/11/21 HTML / CSS
HTML5标签与HTML4标签的区别示例介绍
2013/07/18 HTML / CSS
威尔逊皮革:Wilsons Leather
2018/12/07 全球购物
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
学习优秀共产党员先进事迹思想报告
2014/09/17 职场文书
2016年入党心得体会范文
2016/01/23 职场文书
导游词之湖北梁子湖
2019/11/07 职场文书