extends layout

block opration-content

a(class=”nav-item nav-link”href=”/login”)Login

a(class=”nav-item nav-link active”href=”#”)SignUp

block content

.login.row.justify-content-md-center

.col-md-8

.card.border-secondary

.card-headerRegister

.card-body.text-secondary

form(οnsubmit=”return false;”)

.form-group.row

lable(for=”name”class=”col-sm-4 text-right”)Name

.col-sm-6

input(

type=”text”

name=”name”

class=”form-control”

id=”name”

placeholder=”Name”

required

)

.form-group.row

lable(for=”sex”class=”col-sm-4 text-right”)Sex

.col-sm-6

label.custom-control.custom-radio

input(

id=”radioStacked1″

name=”sex”

type=”radio”

value=”0″

class=”custom-control-input”

required

)

span.custom-control-indicator

span.custom-control-descriptionMale

label.custom-control.custom-radio

input(

id=”radioStacked2″

name=”sex”

type=”radio”

value=”1″

class=”custom-control-input”

required

)

span.custom-control-indicator

span.custom-control-descriptionFemale

.form-group.row

lable(for=”address”class=”col-sm-4 text-right”)Address

.col-sm-6

input(

type=”text”

name=”address”

class=”form-control”

id=”address”

placeholder=”Address”

required

)

.form-group.row

lable(for=”password”class=”col-sm-4 text-right”)Password

.col-sm-6

input(

type=”password”

name=”password”

class=”form-control”

id=”password”

placeholder=”Password”

required

)

.form-group.row

lable(for=”password_confirmation”class=”col-sm-4 text-right”)ConfirmPassword

.col-sm-6

input(

type=”password”

name=”password_confirmation”

class=”form-control”

id=”password_confirmation”

placeholder=”Confirm Password”

required

)

.form-group.row

lable.col-sm-4.text-right验证码

#captcha.col-sm-6

p#wait.show正在加载验证码……

.row

.col-sm-8.ml-sm-auto

button(type=”submit”class=”btn btn-dark”id=”registerBtn”)

i(class=”fa fa-sign-in”aria-hidden=”true”)

|SignUp

append header

script(src=CommonLibs+’/js/gt.js’)

script.

functionregister(captchaObj){

var result = captchaObj.getValidate();

if(!result){

returnalert(‘请完成验证’);

}

var name =$(‘input[name=name]’).val();

var pwd =$(‘input[name=password]’).val();

var cpwd =$(‘input[name=password_confirmation]’).val();

var sex =$(‘input[name=sex]:checked’).val();

var address =$(‘input[name=address]’).val();

var udate =newDate();

if(name ==”|| pwd ==”|| cpwd ==”|| sex ==”|| address ==”){

returnfalse;

}

udate = udate.Format(‘yyyy-MM-dd hh:mm:ss’);

if($.md5(pwd)!= $.md5(cpwd)){

alert(‘The confirmation password is not identical.’);

returnfalse;

}

var param ={

uname: name,

upwd: $.md5(pwd),

usex: sex,

uaddress: address,

udate: udate

};

$.ajax({

type:’post’,

url:’/ghost/register’,

data: param,

dataType:’json’,

success:function(res){

alert(‘Register Success’);

window.location.href =’/login’;

},

error:function(err){

console.log(err);

captchaObj.reset();

}

});

returnfalse;

}

varhandler=function(captchaObj){

captchaObj.appendTo(‘#captcha’);

captchaObj.onReady(function () {

$(“#wait”).hide();

});

$(‘#registerBtn’).click(function(){

register(captchaObj);

});

// 更多接口说明请参见:http://docs.geetest.com/install/client/

window.gt= captchaObj;

};

$.ajax({

url:”gt/register-slide?t=”+(newDate()).getTime(),// 加随机数防止缓存

type:”get”,

dataType:”json”,

success:function(data){

// 调用 initGeetest 进行初始化

// 参数1:配置参数

// 参数2:回调,回调的第一个参数验证码对象,之后可以使用它调用相应的接口

initGeetest({

// 以下 4 个配置参数为必须,不能缺少

gt: data.gt,

challenge: data.challenge,

offline:!data.success,// 表示用户后台检测极验服务器是否宕机

new_captcha: data.new_captcha,// 用于宕机时表示是新验证码的宕机

product:”float”,// 产品形式,包括:float,popup

width:”100%”

// 更多配置参数说明请参见:http://docs.geetest.com/install/client/

}, handler);

}

});

// 对Date的扩展,将 Date 转化为指定格式的String

// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,

// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)

// 例子:

// (new Date()).Format(“yyyy-MM-dd hh:mm:ss.S”) ==> 2006-07-02 08:09:04.423

// (new Date()).Format(“yyyy-M-d h:m:s.S”) ==> 2006-7-2 8:9:4.18

Date.prototype.Format=function(fmt){//author: meizz

var o ={

“M+”:this.getMonth()+1,//月份

“d+”:this.getDate(),//日

“h+”:this.getHours(),//小时

“m+”:this.getMinutes(),//分

“s+”:this.getSeconds(),//秒

“q+”:Math.floor((this.getMonth()+3)/3),//季度

“S”:this.getMilliseconds()//毫秒

};

if(/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1,(this.getFullYear()+””).substr(4-RegExp.$1.length));

for(var k in o)

if(newRegExp(“(“+ k +”)”).test(fmt)) fmt = fmt.replace(RegExp.$1,(RegExp.$1.length==1)?(o[k]):((“00″+ o[k]).substr((“”+ o[k]).length)));

return fmt;

js pug 代码_前端开发nodejs+pug——注册登录相关推荐

  1. css宋体代码_前端开发必备的CSS命名规范与常用CSS代码集合

    编辑 | web前端开发 来源 | web前端开发 我们在用html+css进行网页的排版布局时,经常会遇到CSS命名,如果是在团队多人协作开发时,团队里都会有自己的命名规范与要求. 但如果是自己在个 ...

  2. JS实现仿新浪微博大厅和腾讯微博首页滚动效果_前端开发

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  3. 读书笔记:编写高质量代码--web前端开发修炼之道(二:5章)

    读书笔记:编写高质量代码--web前端开发修炼之道 这本书看得断断续续,不连贯,笔记也是有些马虎了,想了解这本书内容的童鞋可以借鉴我的这篇笔记,希望对大家有帮助. 笔记有点长,所以分为一,二两个部分: ...

  4. 人工智能实战小程序之语音_前端开发

    1. 人工智能实战小程序之准备工作 2. 人工智能实战小程序之语音_前端开发 今天这部分主要讲小程序前端功能的开发 由于我偏后端,css是我的弱项,可能很多人和我一样开发小程序不知道如何下手,希望本篇 ...

  5. 前端切换视图_前端开发的10个软件工具,用过3个就是大神!

    即刻关注公众号,发现世界的美好 经常有小伙伴问我前端开发写代码用那个软件好? 今天在这里统一回答,主流的前端开发写代码软件有这:Webstorm.Vscode.Sublime Text.HBuilde ...

  6. js pug 代码_用JS写的windows95操作系统

    README.md 这是Windows95,在Electron应用程序中运行.是的,这是完整的. 它有用吗? 是的,可以.实际上,在macOS,Windows和Linux上.请记住,这完全是用Java ...

  7. webstorm github怎么用_前端开发神器WebStorm发布最新版本2019.3,代码完成更加智能...

    WebStorm是一款深受广大程序员喜爱的JavaScript 开发和Web前端开发工具,完美适应各种复杂客户端开发和Node.js的服务器端开发.2019.3版本的启动速度提高了20%,对Vue.j ...

  8. js导出excel单元格内换行符代码_前端和excel的那些事

    前端和 excel 的那点事 在开发需求中,经常会遇到需要和excel相关的需求,毕竟不是所有人都是程序员,很多的业务都是通过excel去进行数据的整理归类计算的,excel中提供的一系列快捷功能,统 ...

  9. js读取外部json指定字段值完整代码_前端工程化 剖析npm的包管理机制(完整版)...

    导读 现如今,前端开发的同学已经离不开 npm 这个包管理工具,其优秀的包版本管理机制承载了整个繁荣发展的NodeJS社区,理解其内部机制非常有利于加深我们对模块开发的理解.各项前端工程化的配置以加快 ...

  10. js 刷新页面但是不闪烁_前端开发还在手动刷新页面?手把手教你搭建一个自动刷新工具...

    作为一名前端,开发web页面是我们的本职工作.在完成一个页面开发的过程中,保存代码然后手动刷新页面查看效果,这样的动作需要重复无数次,虽然一次这样的动作可能只要花费几秒钟的时间,但是次数多了也挺浪费时 ...

最新文章

  1. MacBookProM1 重置的注意事项
  2. 一些汇编中的 trick
  3. Handler消息传递机制(一)
  4. 21_异常_第21天(异常、企业面试题,思维导图下载)
  5. ASP.NET Core使用HostingStartup增强启动操作
  6. SharePoint2013 2019性能及限制
  7. 有没有适合做签名的简短句子?
  8. javaweb简单的登录增删改查系统_国产化之路统信UOS /Nginx /Asp.Net Core+ EF Core 3.1/达梦DM8实现简单增删改查操作...
  9. 【ZJOI2009】【BZOJ1432】Function(找规律)
  10. WPF Demo20 模板
  11. (笔记)电路设计(六)之稳压二极管的应用
  12. 期货日内交易如何判断方向
  13. 高性能服务器设计——常用网络服务器设计模型
  14. 三、任务切换之PendSV异常
  15. 手机用html电视,手机怎么连接电视
  16. 嵌入式开发之linux根文件系统移植
  17. PDF预览电子签章无法显示问题
  18. 图数据库初探相关——1.Simulating Mobile Money Fraud pt.1(模拟移动支付诈骗)翻译
  19. 【资料合集】2018云栖大会上半年深圳、南京、武汉、上海峰会全记录
  20. 脑机接口科普0003——Hans Berger

热门文章

  1. java 核型技术 卷2 pdf,NGS-analysis/Structural-Variation.md at master · zhuhuo/NGS-analysis · GitHub...
  2. wget php mirror 地址,wget命令镜像网站
  3. 如何找到mysql的初始密码_如何查看mysql的初始密码
  4. 硬盘安装win10,笔者教你如何一步步从硬盘安装win10系统
  5. 基于Echarts实现可视化数据大屏物流云大数据看板页面HTML模板
  6. antd 时间选择器,设置显示为中文
  7. 关于“wuauclt.exe”病毒的清理
  8. DataHunter完成千万级A轮融资 打造数据协作平台
  9. 计算机系统的组成中的软件部分
  10. 模拟信号和数字信号的区别