在layui中使用form表單監(jiān)聽ajax異步驗證注冊的實例
今天給大家介紹的是當(dāng)下很流行的框架layui中的一個小案例、就是form表單監(jiān)控提交并且使用ajax異步提交驗證數(shù)據(jù)。在layui中我們想使用哪個模塊就要layui.use('form',function{});這種形式要引用form內(nèi)置模板,下面是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表單監(jiān)聽異步驗證注冊"> <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"> <!-- 未登入的狀態(tài) --> <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>開門社區(qū) 2018 © <a 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> //監(jiān)聽提交 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('請輸入有效的卡片內(nèi)碼!', {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')}"; //成功跳轉(zhuǎn)的url setTimeout(window.location.href=url,2000); }else{ layer.msg(data.msg, {icon: 2}); } }, }); return false; }); }); </script> </body> </html>
下面是ajax_reg邏輯方面,這是我的業(yè)務(wù)邏輯大家沒必要照搬,知道怎么用就行了
//表單異步提交 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'=>'無效的卡片內(nèi)碼,請聯(lián)系管理員!')); 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){//如果注冊過一次下次只更新門區(qū) $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'=>'你已注冊為該門區(qū)的租戶,請勿重復(fù)注冊!')); 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表單監(jiān)聽ajax異步驗證注冊的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于JavaScript的with 語句的使用方法
JavaScript 有個 with 關(guān)鍵字, with 語句的原本用意是為逐級的對象訪問提供命名空間式的速寫方式. 也就是在指定的代碼區(qū)域, 直接通過節(jié)點名稱調(diào)用對象2011-05-05網(wǎng)站頁面自動跳轉(zhuǎn)實現(xiàn)方法PHP、JSP(下)
很多時候我們需要Web頁具備有自動跳轉(zhuǎn)功能,例如,論壇中的用戶登錄、發(fā)帖及回復(fù)或留言簿中的留言和回復(fù)等操作成功后,若用戶沒有任何鼠標(biāo)點擊操作,過了一定的時間,頁面自動跳轉(zhuǎn)到預(yù)設(shè)的頁面。2010-08-08javascript使用avalon綁定實現(xiàn)checkbox全選
checkbox全選應(yīng)該是一個比較實用的前端技巧吧,很多時候我們都需要點擊一個checkbox,然后將所有的復(fù)選框自動全部選中,一些CMS系統(tǒng)的后臺中,使用本JS效果后,會大大增強了操作體驗,那么究竟是如何實現(xiàn)這一功能的呢?2015-05-05javascript實現(xiàn)div浮動在網(wǎng)頁最頂上并帶關(guān)閉按鈕效果實例
我們有時會看到有些網(wǎng)站最頂部一直會跟著我們滾動而滾動了,這種方法其實很簡單,下面我來給大推薦一個javascript實現(xiàn)div浮動在網(wǎng)頁最頂上并帶關(guān)閉按鈕效果2013-08-08