在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 相关文章推荐
11个用于提高排版水平的基于jquery的文字效果插件
Sep 14 Javascript
详解JavaScript中shift()方法的使用
Jun 09 Javascript
SpringMVC返回json数据的三种方式
Dec 10 Javascript
js实现仿微博滚动显示信息的效果
Dec 21 Javascript
基于javascript html5实现3D翻书特效
Mar 14 Javascript
jQuery实现ToolTip元素定位显示功能示例
Nov 23 Javascript
微信小程序 input输入框详解及简单实例
Jan 10 Javascript
js模拟百度模糊搜索的实例
Aug 04 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
Jan 09 Javascript
一步一步的了解webpack4的splitChunk插件(小结)
Sep 17 Javascript
JavaScript解析及序列化JSON的方法实例分析
Jan 04 Javascript
详解React 条件渲染
Jul 08 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投票系统防刷票判断流程分析
2012/02/04 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
2013/09/23 PHP
php环境无法上传文件的解决方法
2014/04/30 PHP
ThinkPHP的L方法使用简介
2014/06/18 PHP
php实现表单多按钮提交action的处理方法
2015/10/24 PHP
Yii2配置Nginx伪静态的方法
2017/05/05 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
一个刚完成的layout(拖动流畅,不受iframe影响)
2007/08/17 Javascript
jquery插件之easing 动态菜单
2010/08/21 Javascript
新浪微博字数统计 textarea字数统计实现代码
2011/08/28 Javascript
jQuery的显示和隐藏方法与css隐藏的样式对比
2013/10/18 Javascript
用jQuery toggleClass 实现鼠标移上变色
2014/05/14 Javascript
Javascript中的异步编程规范Promises/A详细介绍
2014/06/06 Javascript
javascript浏览器窗口之间传递数据的方法
2015/01/20 Javascript
js获取图片宽高的方法
2015/11/25 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
简单实现IONIC购物车功能
2017/01/10 Javascript
详解JavaScript中js对象与JSON格式字符串的相互转换
2017/02/14 Javascript
JSON对象转化为字符串详解
2017/08/11 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
微信小程序实现自上而下字幕滚动
2018/07/14 Javascript
浅谈Angular 观察者模式理解
2018/11/01 Javascript
JavaScript文档加载模式以及元素获取
2020/07/28 Javascript
Python md5与sha1加密算法用法分析
2017/07/14 Python
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
python实现外卖信息管理系统
2018/01/11 Python
pandas.loc 选取指定列进行操作的实例
2018/05/18 Python
Python后台开发Django的教程详解(启动)
2019/04/08 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
电信专业应届生自荐信
2013/09/28 职场文书
电大毕业个人生自我鉴定
2014/03/26 职场文书
社区党风廉政建设调研报告
2015/01/01 职场文书
大学生求职信怎么写
2015/03/19 职场文书
python实现批量提取指定文件夹下同类型文件
2021/04/05 Python
pytorch通过训练结果的复现设置随机种子
2021/06/01 Python
Spring Security动态权限的实现方法详解
2022/06/16 Java/Android