在layui中使用form表單監(jiān)聽(tīng)ajax異步驗(yàn)證注冊(cè)的實(shí)例
今天給大家介紹的是當(dāng)下很流行的框架layui中的一個(gè)小案例、就是form表單監(jiān)控提交并且使用ajax異步提交驗(yàn)證數(shù)據(jù)。在layui中我們想使用哪個(gè)模塊就要layui.use('form',function{});這種形式要引用form內(nèi)置模板,下面是HTML全部代碼
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>注冊(cè)</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)聽(tīng)異步驗(yàn)證注冊(cè)">
<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" >注冊(cè)</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">注冊(cè)</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">手機(jī)</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">卡號(hào)</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" >立即注冊(cè)</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="fly-footer">
<p>開(kāi)門社區(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)聽(tīng)提交
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('請(qǐng)輸入有效的手機(jī)號(hào)碼', {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('請(qǐng)輸入有效的手機(jī)號(hào)碼', {icon: 2});
return false;
}
if(cardno.length!=8){
layer.msg('請(qǐng)輸入有效的卡片內(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('注冊(cè)成功!', {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ù)邏輯大家沒(méi)必要照搬,知道怎么用就行了
//表單異步提交
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'=>'無(wú)效的卡片內(nèi)碼,請(qǐng)聯(lián)系管理員!'));
exit();
}
$wechatinfo=$_SESSION['wechatinfo'];
if(!$wechatinfo){
echo json_encode(array('status'=>'no','msg'=>'頁(yè)面已過(guò)期請(qǐng)重新掃碼進(jìn)入!'));
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){//如果注冊(cè)過(guò)一次下次只更新門區(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'=>'你已注冊(cè)為該門區(qū)的租戶,請(qǐng)勿重復(fù)注冊(cè)!'));
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'=>'恭喜你,注冊(cè)成功!'));
}
}
}
}
以上這篇在layui中使用form表單監(jiān)聽(tīng)ajax異步驗(yàn)證注冊(cè)的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
js實(shí)現(xiàn)固定顯示區(qū)域內(nèi)自動(dòng)縮放圖片的方法
這篇文章主要介紹了js實(shí)現(xiàn)固定顯示區(qū)域內(nèi)自動(dòng)縮放圖片的方法,實(shí)例分析了javascript操作頁(yè)面元素及屬性的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
ckeditor一鍵排版功能實(shí)現(xiàn)方法分析
這篇文章主要介紹了ckeditor一鍵排版功能實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了ckeditor一鍵排版相關(guān)擴(kuò)展插件定義、配置與使用方法,需要的朋友可以參考下2020-02-02
js下獲得客戶端操作系統(tǒng)的函數(shù)代碼(1:vista,2:windows7,3:2000,4:xp,5:2003,6:20
有時(shí)候需要在客戶端獲取操作系統(tǒng)的版本,以便更好的給用戶合適的信息,提高用戶體驗(yàn),好不容易從網(wǎng)站發(fā)現(xiàn)了這段代碼,分享給大家。2011-10-10
JS實(shí)現(xiàn)鼠標(biāo)箭頭變成一個(gè)燃燒燭光效果的方法
這篇文章主要介紹了JS實(shí)現(xiàn)鼠標(biāo)箭頭變成一個(gè)燃燒燭光效果的方法,實(shí)例分析了javascript操作鼠標(biāo)事件及圖片的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02
JS跳轉(zhuǎn)手機(jī)站url的若干注意事項(xiàng)
去年年底開(kāi)發(fā)了一個(gè)手機(jī)站平臺(tái),遇到了很多坎,今天小編給大家分享下使用JS跳轉(zhuǎn)手機(jī)站url的若干注意事項(xiàng),需要的朋友參考下吧2017-10-10
angular bootstrap timepicker TypeError提示怎么辦
這篇文章主要介紹了angular bootstrap timepicker TypeError提示的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06

