在layui中使用form表单监听ajax异步验证注册的实例


Posted in Javascript onSeptember 03, 2019

今天给大家介绍的是当下很流行的框架layui中的一个小案例、就是form表单监控提交并且使用ajax异步提交验证数据。在layui中我们想使用哪个模块就要layui.use('form',function{});这种形式要引用form内置模板,下面是HTML全部代码

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <title>注册</title>
 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
 <meta name="keywords" content="雷小天">
 <meta name="description" content="雷小天博客-layui中使用form表单监听异步验证注册">
 <link rel="stylesheet" href="__RES__/layui/css/layui.css" rel="external nofollow" >
 <link rel="stylesheet" href="__RES__/css/global.css" rel="external nofollow" >
</head>
<body>

<div class="fly-header layui-bg-black">
 <div class="layui-container">
 <a class="fly-logo" href="{:U('device/getinfo')}" rel="external nofollow" >
  <img src="__RES__/images/logo.png" alt="layui">
 </a>
 

 <ul class="layui-nav fly-nav-user">
  <!-- 未登入的状态 -->
  <li class="layui-nav-item">
  <a class="iconfont icon-touxiang layui-hide-xs" href="user/login.html" rel="external nofollow" ></a>
  </li>
  <li class="layui-nav-item">
  <a href="{:U('device/login')}" rel="external nofollow" rel="external nofollow" >登入</a>
  </li>
  <li class="layui-nav-item">
  <a href="javascript::void;" rel="external nofollow" >注册</a>
  </li>
  
 </ul>
 </div>
</div>

<div class="layui-container fly-marginTop">
 <div class="fly-panel fly-panel-user" pad20>
 <div class="layui-tab layui-tab-brief" lay-filter="user">
  <ul class="layui-tab-title">
  <li><a href="{:U('device/login')}" rel="external nofollow" rel="external nofollow" >登入</a></li>
  <li class="layui-this">注册</li>
  </ul>
  <div class="layui-form layui-tab-content" id="LAY_ucm" style="padding: 20px 0;">
  <div class="layui-tab-item layui-show">
   <div class="layui-form layui-form-pane">
   <form method="post">
    <div class="layui-form-item">
    <label for="L_username" class="layui-form-label">手机</label>
    <div class="layui-input-inline">
    <input type="text" id="signuppassdata" name="phone" required lay-verify="required" autocomplete="off" class="layui-input">
    </div>
    </div>

    <div class="layui-form-item">
    <label for="L_username" class="layui-form-label">卡号</label>
    <div class="layui-input-inline">
     <input type="text" id="cardno" name="cardno" required lay-verify="required" autocomplete="off" class="layui-input">
    </div>
    </div>


    <div class="layui-form-item">
    
    <button class="layui-btn" type="submit" lay-filter="reg" lay-submit="" id="signuppass" >立即注册</button>

    </div>
    
   </form>
   </div>
  </div>
  </div>
 </div>
 </div>

</div>

<div class="fly-footer">
 <p>开门社区 2018 © <a href="http://www.100txy.com/" rel="external nofollow" target="_blank">100txy.com 出品</a></p>
 <p><a href="JavaScript::void;" rel="external nofollow" target="_blank">雷小天博客</a></p>
</div>

<script src="__PUBLIC__/mobile/js/jquery.js"></script>
<script src="__RES__/layui/layui.js"></script>
<script>

//监听提交
layui.use('form', function(){
 var form = layui.form;
 form.on('submit(reg)', function(data){
 // layer.msg(JSON.stringify(data.field));//弹出json格式所有表单的值
 var phone=data.field.phone;
 var cardno=data.field.cardno;
 if(phone.length!=11){
  layer.msg('请输入有效的手机号码', {icon: 2});
  return false;
 }
 var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
 if(!myreg.test(phone)){
  layer.msg('请输入有效的手机号码', {icon: 2});
  return false;
 }
 if(cardno.length!=8){
  layer.msg('请输入有效的卡片内码!', {icon: 2});
  return false;
 }
 $.ajax({
  type:"POST",
  url:"index.php?m=Home&c=Device&a=ajax_reg",
  data:"phone="+phone+"&cardno="+cardno,
  dataType:"json",
  success:function(data){
  if(data.status=='yes'){
   layer.msg('注册成功!', {icon: 1});
   var url = "{:U('device/getinfo')}"; //成功跳转的url
   setTimeout(window.location.href=url,2000);
  }else{
   layer.msg(data.msg, {icon: 2});
  }
  },
 });
 return false;
 });
});

</script>

</body>
</html>

下面是ajax_reg逻辑方面,这是我的业务逻辑大家没必要照搬,知道怎么用就行了

//表单异步提交
 public function ajax_reg(){
 if(isset($_POST['phone'])&&isset($_POST['cardno'])){
  $roomnostr = M("userinfo")->where(array('cardno'=>$_POST['cardno']))->getField('roomno');
  if(!$roomnostr){
   echo json_encode(array('status'=>'no','msg'=>'无效的卡片内码,请联系管理员!'));
   exit();
  }
  $wechatinfo=$_SESSION['wechatinfo'];
  if(!$wechatinfo){
   echo json_encode(array('status'=>'no','msg'=>'页面已过期请重新扫码进入!'));
   exit();
  }

  $result= M("weixin")->where(array('openid'=>$wechatinfo['openid']))->field('is_signup,area_id')->find();
  $areaArr=explode('-',$result['area_id']);
  // $result=M("weixin")->getFieldByOpenid($_POST['openid'],'is_signup');
  if(isset($result)&&$result['is_signup']==1){//如果注册过一次下次只更新门区
  $new_area=$roomnostr;
   $reg=M("weixin")->where(array('openid'=>$wechatinfo['openid']))->save(array('area_id'=>$new_area));
   echo json_encode(array('status'=>'no','type'=>'signuppass','msg'=>'你已注册为该门区的租户,请勿重复注册!'));
   exit();
  }else{
  $data=array(
   'is_signup'=>1,
   'phone'=>$_POST['phone'],
   'openid'=>$wechatinfo['openid'],
   'nickname'=>$wechatinfo['nickname'],
   'sex'=>$wechatinfo['sex'],
   'headimgurl'=>$wechatinfo['headimgurl'],
   'area_id'=>$roomnostr,
   'regtime'=>time(),
   'cardno'=>$_POST['cardno'],
  );
  $reg=M("weixin")->add($data);
  if($reg){
   echo json_encode(array('status'=>'yes','msg'=>'恭喜你,注册成功!'));
  }
  }

 }
 }

以上这篇在layui中使用form表单监听ajax异步验证注册的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript qq右下角滑出窗口 sheyMsg
Mar 21 Javascript
基于javascipt-dom编程 table对象的使用
Apr 22 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
Nov 22 Javascript
JavaScript将页面表格导出为Excel的具体实现
Dec 27 Javascript
javascript检测两个数组是否相似
May 19 Javascript
javascript使用闭包模拟对象的私有属性和方法
Oct 05 Javascript
vue.js 表格分页ajax 异步加载数据
Oct 18 Javascript
TypeScript入门-接口
Mar 30 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
Jun 28 Javascript
简述pm2常用命令集合及配置文件说明
May 30 Javascript
layui--select使用以及下拉框实现键盘选择的例子
Sep 24 Javascript
JS原型对象操作实例分析
Jun 06 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
Sep 03 #Javascript
mui js控制开关状态、修改switch开关的值方法
Sep 03 #Javascript
Layui给switch添加响应事件的例子
Sep 03 #Javascript
layui--js控制switch的切换方法
Sep 03 #Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
Sep 03 #Javascript
layui中的switch开关实现方法
Sep 03 #Javascript
微信小程序表单验证插件WxValidate的二次封装功能(终极版)
Sep 03 #Javascript
You might like
PHP利用REFERER根居访问来地址进行页面跳转
2013/09/28 PHP
PHP 正则判断中文UTF-8或GBK的思路及具体实现
2013/11/26 PHP
Thinkphp中的curd应用实用要点
2015/01/04 PHP
PHP解密Unicode及Escape加密字符串
2015/05/17 PHP
微信公众平台DEMO(PHP)
2016/05/04 PHP
location.href语句与火狐不兼容的问题
2010/07/04 Javascript
JavaScript实现打字效果的方法
2015/07/10 Javascript
jquery利用拖拽方式在图片上添加热链接
2015/11/24 Javascript
对javascript继承的理解
2016/10/11 Javascript
ES6概念 Symbol toString()方法
2016/12/25 Javascript
js实现图片360度旋转
2017/01/22 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
jQuery 禁止表单用户名、密码自动填充功能
2017/10/30 jQuery
在vue.js中使用JSZip实现在前端解压文件的方法
2018/09/05 Javascript
小程序云开发如何实现图片上传及发表文字
2019/05/17 Javascript
JavaScript常用工具函数大全
2020/05/06 Javascript
python实现给数组按片赋值的方法
2015/07/28 Python
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
2016/07/01 Python
Python SQLite3数据库日期与时间常见函数用法分析
2017/08/14 Python
用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
2017/12/14 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
2018/04/02 Python
python实现远程控制电脑
2019/05/23 Python
PyQt5中向单元格添加控件的方法示例
2020/03/24 Python
英国派对礼服和连衣裙购物网站:TFNC London
2018/07/07 全球购物
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
营销与策划应届生求职信
2013/11/04 职场文书
骨干教师培训制度
2014/01/13 职场文书
人事专员的岗位职责
2014/03/01 职场文书
《广玉兰》教学反思
2014/04/14 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
2015年爱国卫生月活动总结
2015/03/26 职场文书
教导处教学工作总结
2015/08/12 职场文书
员工聘用合同范本
2015/09/21 职场文书
深入浅析Django MTV模式
2021/09/04 Python
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
2022/04/14 Python
Java Spring Lifecycle的使用
2022/05/06 Java/Android