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 相关文章推荐
一些关于PHP的知识
Nov 17 PHP
php Ajax乱码
Apr 09 PHP
php在字符串中查找另一个字符串
Nov 19 PHP
php中用foreach来操作数组的代码
Jul 17 PHP
php $_SERVER windows系统与linux系统下的区别说明
Feb 14 PHP
一个基于phpQuery的php通用采集类分享
Apr 09 PHP
php对包含html标签的字符串进行截取的函数分享
Jun 19 PHP
php简单判断两个字符串是否相等的方法
Jul 13 PHP
WordPress开发中用于获取近期文章的PHP函数使用解析
Jan 05 PHP
PHP 匿名函数与注意事项详细介绍
Nov 26 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
Apr 23 PHP
Laravel框架实现文件上传的方法分析
Sep 29 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
自己做矿石收音机
2021/03/02 无线电
使用NetBeans + Xdebug调试PHP程序的方法
2011/04/12 PHP
PHP中::、-&amp;gt;、self、$this几种操作符的区别介绍
2013/04/24 PHP
Laravel学习教程之路由模块
2017/08/18 PHP
PHP简单实现循环链表功能示例
2017/11/10 PHP
javascript 树控件 比较好用
2009/06/11 Javascript
display和visibility的区别示例介绍
2014/02/26 Javascript
网页实时显示服务器时间和javscript自运行时钟
2014/06/09 Javascript
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
JavaScript检测浏览器cookie是否已经启动的方法
2015/02/27 Javascript
javascript每日必学之继承
2016/02/23 Javascript
Bootstrap CSS组件之按钮组(btn-group)
2016/12/17 Javascript
JS实现改变HTML上文字颜色和内容的方法
2016/12/30 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
Vue scoped及deep使用方法解析
2020/08/01 Javascript
在vue中使用console.log无效的解决
2020/08/09 Javascript
python绘制中国大陆人口热力图
2018/11/07 Python
python3利用Socket实现通信的方法示例
2019/05/06 Python
python判断链表是否有环的实例代码
2020/01/31 Python
Python操作Jira库常用方法解析
2020/04/10 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
2020/04/20 Python
python 多线程死锁问题的解决方案
2020/08/25 Python
python collections模块的使用
2020/10/16 Python
is_file和file_exists效率比较
2021/03/14 PHP
美国葡萄酒网上商店:Martha Stewart Wine Co.
2019/03/17 全球购物
会计专业毕业生推荐信
2013/11/05 职场文书
护士思想汇报
2014/01/12 职场文书
实验教师岗位职责
2014/02/13 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
模范教师事迹材料
2014/12/16 职场文书
汇报材料怎么写
2014/12/30 职场文书
学生自我评语
2015/01/04 职场文书
python使用pycharm安装pyqt5以及相关配置
2022/04/22 Python
css3 文字断裂效果
2022/04/22 HTML / CSS