123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499 |
- Namespace.register("U.MD.U.F"); //用户找回帐号
- //#region 切换找回方式
- /**
- * 弹出密码找回
- *
- */
- U.MD.U.F.findPassword = function () {
- var _parent = $("#U_MD_U_L_login"); //登录注册框
- //弹出密码找回
- var _child = _parent.Child(); //获取登录注册找回密码的div
- _child[1].style.display = "none"; //隐藏注册
- _child[2].style.display = "none"; //隐藏登录
-
- $("div", _child[0])[2].innerHTML = "找回密码";
- //头部设置内容
- var _head = $(_child[0]).childs()[1];
- $(_head).addAttrArray({
- "innerHTML": "",
- "onclick": null,
- "className": "",
- "title": ""
- });
- //调用找回密码的上下部的处理,设置为第一步
- U.MD.U.F.findPasswordProcessing($(_child[3]).Child()[1], 0);
- //显示的默认密保找回处理
- U.MD.U.F.switchEmailOrSecurityFind($("span", _child[3])[0], 'security');
- _child[3].style.display = "block"; //显示找回密码
- }
- /**
- * 手机号找回后的上下步操作处理
- *
- * @param {element} 找回密码元素
- * @param {int} 第几步
- */
- U.MD.U.F.findPasswordProcessing = function (el, displaynum) {
- var _inputs,
- _len,
- _bottom,
- _child = $(el).Child(), //获取找回和确认找回的两个步骤的元素
- _parentel = $(el).Parent();
- //找回密码确认上下步处理
- for (i = 0; i < _child.length; i++) {
- //判断显示的隐藏的区域处理
- if (i == displaynum) { //如果是显示
- _child[i].style.display = "block";
- _inputs = $("input", _child[i]); //获取显示的元素下的input元素
- _len = _inputs.length; //输入框的总长度
- }
- else { //隐藏
- _child[i].style.display = "none";
- }
- }
- //使用聚焦和释放的方式,重新设置input的初始化样式
- while (_len--) {
- _inputs[_len].value = "";
- _inputs[_len].innerText = "6-20位字符或数字";
- _inputs[_len].focus();
- _inputs[_len].blur();
- }
- }
- /**
- * 切换找回的方式,邮箱,密保,手机切找回的方式
- *
- */
- U.MD.U.F.switchEmailOrSecurityFind = function (el, typename) {
- var _input,
- _tempel,
- _parentel = $(el).Parent(2),
- _childs = $(_parentel).Child(),
- _inputs = $("input", _parentel),
- _span = $("span", _parentel),
- _is = $("i", _parentel),
- _bottom = $(_parentel).Child()[2],
- _code = $("#U_MD_U_L_Overflow_Code")[0]; //验证码框
- //如果是邮箱找回处理
- if (typename == "email") {
- _input = _inputs[1];
- _tempel = $$("input", {
- "type": "text",
- "onblur": function () {
- U.MD.U.F.checkEmail(this); $(this).parentElement(2).removeClass('U_MD_U_L_Box_Border');
- },
- "onfocus": _input.onfocus,
- "onkeyup": _input.onkeyup
- });
- _input.parentNode.replaceChild(_tempel, _input);
- _is[1].innerText = "请输入邮箱";
- _span[1].className = "U_MD_U_F_T_Hover";
- _span[0].className = "";
- _code.style.display = "none"; //验证码框
- _bottom.onclick = function () {
- U.MD.U.F.findPasswordByEmail(_childs[1]);
- }
- }
- //如果是手机找回处理
- else if (typename == 'security') {//更改style
- _input = _inputs[1];
- _tempel = $$("input", {
- "type": "text",
- "onblur": function () {
- U.MD.U.F.checkPhone(this); $(this).parentElement(2).removeClass('U_MD_U_L_Box_Border');
- }, //更改onblur事件
- "onfocus": _input.onfocus, //更改onfocus事件
- "onkeyup": _input.onkeyup//更改onkeyup事件
- });
- _input.parentNode.replaceChild(_tempel, _input); //替换
- _is[1].innerText = "请输入手机号";
- _span[0].className = "U_MD_U_F_T_Hover"; //更改class
- _span[1].className = ""; //更改class
- _code.style.display = "block"; //验证码框
- _inputs[3].value = "发送"; //验证码框内的value
- _inputs[3].onclick = function () {//验证码框的点击事件
- U.MD.U.F.userName(U.MD.U.F.phoneSend); //验证用户名是否存在
- }
- _bottom.onclick = function () {//设定提交按钮的点击事件
- U.MD.U.F.phoneConfirm(_childs[1]); //确认验证码
- }
- }
- }
- //#endregion
- //#region 手机找回
- /**
- * 手机号设置
- *
- * @param {element} 手机号设置处理
- */
- U.MD.U.F.checkSecurityCode = function (el) {
- var _inputs = $("input", el), //输入框
- _username = _inputs[0], //密码
- _phone = _inputs[1]; //确认手机号
- if (U.MD.U.F.checkUserName(_username) && U.MD.U.F.checkPhone(_phone)) {//判断账号和手机号是否输入指定格式
- U.MD.U.F.phoneCheckSecurityCode(["", el, _username, _phone])//调用后台处理用户的修改密码
- }
- }
- /**
- * 手机发送验证码
- *
- */
- U.MD.U.F.phoneSend = function () {
- var _username = $("#U_MD_U_L_Box_height")[0].children[0].children[0].value; //用户名
- U.A.Request(US.CD, [US.DB, "UseStudio_Users", "GetUserinfoByUserName", _username], function (r) {//根据用户名获取用户信息
- if (r.value[0] == undefined) { //判断是否输入手机号
- U.MD.U.R.setInputStyle($("#userphone")[0].children[0], {//给$("#userphone")[0].children[0] 设置 一个红色边框的样式 让用户知道你输入的手机号与账号设置的手机号不匹配
- "color": "red",
- "textAlign": "right",
- "display": "block"
- }, "输入的手机号与账号不匹配");
- return false; //如果输入手机号与账号设置的手机号不匹配 return false
- }
- if (r.value[0].UserTelephoneNumber != $("#userphone")[0].children[0].children[0].value) {//如果输入手机号与账号设置的手机号不匹配)
- U.MD.U.R.setInputStyle($("#userphone")[0].children[0], {//给$("#userphone")[0].children[0] 设置 一个红色边框的样式 让用户知道你输入的手机号与账号设置的手机号不匹配
- "color": "red",
- "textAlign": "right",
- "display": "block"
- }, "输入的手机号与账号不匹配");
- return false; //如果输入手机号与账号设置的手机号不匹配 return false
- }
- else {//如果输入手机号与账号匹配 向手机发送验证码
- // U.A.Request("http://api.cloudsql.1473.cn/postnumber", [$("#userphone")[0].children[0].children[0].value], function (r) {
- // console.log(r);
- // });
- var _xhttp = new XMLHttpRequest(); //XMLHttpRequest 对象用于在后台与服务器交换数据
- _xhttp.onreadystatechange = function () {//每当 readyState 属性改变时,就会调用该函数。
- if (this.readyState == 4) {//发送成功后
- if (this.status == 201) {
- U.Alert('发送成功'); //弹出发送成功
- U.MD.U.F.setTime($("#U_MD_U_L_Overflow_Code")[0].children[1].children[0]); //60秒倒计时
- } else {
- U.Alert(JSON.parse(this.response).err || '验证码发送失败,请重新发送...');
- }
- }
- };
- _xhttp.open("POST", "http://api.cloudsql.1473.cn/postnumber", true); //指定和服务器端交互的HTTP方法,URL地址及其他请求信息
- _xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //向一个打开但未发送的请求设置或添加一个 HTTP 请求
- _xhttp.withCredentials = true; //发送cookie等认证信息到服务端
- _xhttp.send("number=" + $("#userphone")[0].children[0].children[0].value); //$("#userphone")[0].children[0].children[0].value 发送的手机号输入的框
- // U.A.Request.Post("http://api.cloudsql.1473.cn/postnumber", { number: $("#userphone")[0].children[0].children[0].value }, function () {
- // U.MD.U.F.setTime($("#U_MD_U_L_Overflow_Code")[0].children[1].children[0]); //60秒倒计时
- // U.Alert('发送成功'); //弹出发送成功
- // });
- }
- })
- }
- /**
- * 手机确认验证码
- *
- * @param {element} 确认验证码的按钮
- */
- U.MD.U.F.phoneConfirm = function (el) {
- var _xhttp = new XMLHttpRequest(); //XMLHttpRequest 对象用于在后台与服务器交换数据
- _xhttp.onreadystatechange = function () {//每当 readyState 属性改变时,就会调用该函数
- if (this.readyState == 4) {//验证成功后
- if (this.status == 201) {
- U.MD.U.F.checkSecurityCode(el); //手机号设置
- U.Alert("验证成功"); //弹出验证成功
- } else {
- U.Alert(JSON.parse(this.response).err || "验证码有误");
- }
- }
- };
- _xhttp.open("POST", "http://api.cloudsql.1473.cn/verifi", true); ////指定和服务器端交互的HTTP方法,URL地址及其他请求信息
- _xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //向一个打开但未发送的请求设置或添加一个 HTTP 请求
- _xhttp.withCredentials = true; //发送cookie等认证信息到服务端
- _xhttp.send("code=" + $("#U_MD_U_L_Overflow_Code")[0].children[0].children[0].value); //$("#U_MD_U_L_Overflow_Code")[0].children[0].children[0].value 验证码输入的框
- }
- /**
- * 手机重新发送验证码倒计时
- * @param {object} 倒计时的对象
- * @param {number} 倒计时的时间(秒数)
- */
- U.MD.U.F.setTime = function (obj, countdown) {
- var countdown = 60;
- var _settime = setInterval(function () { //setInterval(需要执行的javascript代码,在执行代码前需等待的毫秒数)
- if (countdown == 0) { //倒计时变量为0
- obj.removeAttribute("disabled"); //让obj可以使用
- obj.value = "重新获取验证码";
- clearInterval(_settime); //停止倒计时
- return;
- } else {//如果countdown不等于零 每秒countdown会减少1
- obj.setAttribute("disabled", true); //禁用obj
- obj.value = "重新发送(" + countdown + ")"; //显示倒计时的事件
- countdown--; //倒计时时间 -1S
- }
- }, 1000);
- }
- /**
- * 验证用户名是否存在
- *
- * @param {function} cb 回调函数
- */
- U.MD.U.F.userName = function (cb) {
- U.A.Request(US.USER, ["CheckUserName", U_MD_U_L_Box_height.children[0].children[0].value], //验证用户名是否存在
- function (r) {//回调函数
- var _str = U.UF.C.jsonToStr(r.value); //序列化json为字符串
- if (_str == "false") {//如果用户名不存在
- U.MD.U.R.setInputStyle(U_MD_U_L_Box_height, {//如果不存在 用户名的框变红色 并且提示 用户名不存在
- "color": "red",
- "textAlign": "right",
- "display": "block"
- }, "用户名不存在");
- }
- cb(); //回调函数
- })
- }
- /**
- * 手机号设置处理
- *
- * @param {object} 数据库匹配手机号是否正确
- */
- U.MD.U.F.phoneCheckSecurityCode = function (r) {
- var _bottom,
- _childs,
- _username = r[2], //输入密码框
- _enterpassword = r[3], //确认密码框
- _el = $(_username).Parent(4)
- ;
- //如果密保匹配成功处理
- if (r) {
- //如果账号和手机号匹配成功的处理
- U.MD.U.F.findPasswordProcessing(_el, 1); //手机找回的步骤
- _bottom = $(_el.parentNode).Child()[2]; //得到确认框
- _childs = $("input", _el); //获取所有的输入
- //点击事件处理
- _bottom.onclick = function () {
- U.MD.U.F.setNewUserPassword(r, _childs[1]); //新密码设置
- };
- }
- else {
- //账号或者密保错误
- U.MD.U.R.setInputStyle(_enterpassword, {//给_enterpassword 设置 一个红色边框的样式 让用户知道用户输入账号或者密保错误
- "color": "red",
- "textAlign": "right",
- "display": "block"
- }, "账号或者密保错误");
- }
- }
- /**
- * 新密码设置
- *
- * @param {string} 用户id
- * @param {string} 密码
- * @param {string} 确认密码
- * @param {string} 用户id
- */
- U.MD.U.F.setNewUserPassword = function (userinfo, phone) {
- //判断用户输入的密码是否正确的处理
- var _newpassword = userinfo[1].children[1].children[0].children[0].children[0].value; //密码
- var _newpasswordt = userinfo[1].children[1].children[1].children[0].children[0].value; //再次输入密码
- if (U.MD.U.F.checkConfirmPassword(_newpassword, _newpasswordt)) {//如果 密码和再次输入的密码 相同
- U.A.Request(US.USER, ["UpdateUserPasswordByOldPhoneNumber", phone.value, _newpassword], //修改密码
- U.MD.U.F.asynSetNewUserPassword); //修改密码成功后执行的函数
- }
- }
- /**
- * 新密码设置
- *
- * @param {object} 设置密码成功的异步ajax对象
- */
- U.MD.U.F.asynSetNewUserPassword = function (r) {
- if (r.value) {
- U.alert("修改密码成功,请登录");
- U.MD.U.L.login(); //直接回到登录页面
- };
- }
- //#endregion
- //#region 通过邮箱找回
- /**
- * 通过邮箱找回
- *
- * @param {element} 输入框所在的位置
- */
- U.MD.U.F.findPasswordByEmail = function (el) {
- var _inputs = $("input", el),
- _username = _inputs[0],
- _email = _inputs[1];
- //判断是否发送邮箱
- if (U.MD.U.F.checkEmail(_email) && U.MD.U.F.checkUserName(_username)) {
- U.A.Request(US.USER, ["FindPasswordByEmail", _username.value, _email.value], U.MD.U.F.asynFindPasswordByEmail);
- }
- }
- /**
- * 通过邮箱找回
- *
- * @param {object} ajax返回的值
- */
- U.MD.U.F.asynFindPasswordByEmail = function (r) {
- //成功发送
- if (r.value == "2") {
- U.alert("已经发送邮箱,请及时查看密码");
- U.MD.U.L.init();
- //U.MD.U.L.login(); //直接回到登录页面
- }
- //账号不存在处理
- else if (r.value == "0") {
- U.alert("您输入的账号不存在");
- }
- //邮箱和账号不匹配处理
- else if (r.value == "1") {
- U.alert("邮箱账号不匹配");
- }
- }
- //#endregion
- //#region 密码和密保检查
- /**
- * 判断有限是否正确
- *
- * @param {object} 输入用户名的框
- */
- U.MD.U.F.checkEmail = function (inputel) {
- var _email = inputel.value; //获取用户名
- //输入为空不做变化
- if (_email == "") {
- U.MD.U.R.setInputStyle(inputel, { "display": "block", 'textAlign': 'left', 'marginRight': '0px' }, "请输入邮箱"); //输入的用户名为空的样式处理
- }
- //注册的用户不符合要求
- else if (!U.UF.S.Email.test(_email)) {
- U.MD.U.R.setInputStyle(inputel, { "display": "block", 'textAlign': 'right' }, "请输入正确邮箱"); //注册用户名不符合提示
- }
- else {
- return true;
- }
- return false;
- }
- /**
- * 手机号输入格式检查
- *
- * @param {object} 输入手机号的框
- */
- U.MD.U.F.checkPhone = function (inputel) {
- var _password = inputel.value; //输入手机号的value
- //如果没有输入手机号
- if (_password == "") {
- U.MD.U.R.setInputStyle(inputel, { "display": "block", 'textAlign': 'left', 'marginRight': '0px' }, "请输入手机号"); //没有输入手机号的提示
- }
- //输入的手机号的格式不对
- else if (!/^1[3|4|5|8][0-9]\d{4,8}$/.test(_password)) {
- U.MD.U.R.setInputStyle(inputel, { "display": "block", "color": "red", 'textAlign': 'right' }, "请输入有效手机号"); //输入的手机号有问题
- }
- else {
- return true;
- }
- return false;
- }
- /**
- * 密码输入格式检查
- *
- * @param {object} 输入密码的框
- */
- U.MD.U.F.checkPass = function (inputel) {
- var _password = inputel.value;
- //如果没有输入密码
- if (_password == "") {
- U.MD.U.R.setInputStyle(inputel, { "display": "block", 'textAlign': 'left', 'marginRight': '0px' }, "6-20位字符或数字"); //没有输入密码的提示
- }
- //输入的密码的格式不对
- else if (!U.UF.S.PassWord.test(_password)) {
- U.MD.U.R.setInputStyle(inputel, { "display": "block", "color": "red", 'textAlign': 'right' }, "6-20位字符或数字"); //输入的密码有问题
- }
- else {
- return true;
- }
- return false;
- }
- /**
- * 验证码输入格式
- *
- */
- U.MD.U.F.Verification = function (inputel) {
- var _code = inputel.value;
- //如果没有输入验证码
- if (_code == "") {
- U.MD.U.R.setInputStyle(inputel, { "display": "block", 'textAlign': 'left', 'marginRight': '0px' }, "请输入验证码"); //没有输入验证码的提示
- }
- //输入的验证码的格式不对
- else if (!/^\d{4,6}$/.test(_code)) {
- U.MD.U.R.setInputStyle(inputel, { "display": "block", "color": "red", 'textAlign': 'right' }, "请输入4-6位数的验证码"); //输入的验证码有问题
- }
- else {
- return true;
- }
- return false;
- }
- /**
- * 判断输入框的值是否是账号或者邮箱
- *
- */
- U.MD.U.F.checkUserName = function (inputel) {
- var _username = inputel.value; //获取用户名
- //输入为空不做变化
- if (_username == "") {
- U.MD.U.R.setInputStyle(inputel, { "display": "block", 'textAlign': 'left', 'marginRight': '0px' }, "云端账号"); //输入的用户名为空的样式处理
- }
- //注册的用户不符合要求
- else if (!U.UF.S.UserName.test(_username)) {
- U.MD.U.R.setInputStyle(inputel, { "display": "block", 'textAlign': 'right' }, "4-14位数字或者字母"); //注册用户名不符合提示
- }
- else {
- return true;
- }
- return false;
- }
- /**
- * 判断输入密码和确认密码是否一致处理
- *
- * @param {element} 密码
- * @param {element} 确认密码
- */
- U.MD.U.F.checkConfirmPassword = function (inputo, inputt) {
- var _password = inputt.value;
- //如果没有输入密码
- if (_password == "") {
- U.MD.U.R.setInputStyle(inputt, { "display": "block", 'textAlign': 'left', 'marginRight': '0px' }, "6-20位字符或数字"); //没有输入密码的提示
- }
- //输入的密码的格式不对
- else if (!U.UF.S.PassWord.test(_password)) {
- U.MD.U.R.setInputStyle(inputt, { "display": "block", "color": "red", 'textAlign': 'right' }, "6-20位字符或数字"); //输入的密码有问题
- }
- //输入密码和确认密码不相同
- else if (inputo.value != inputt.value) {
- U.MD.U.R.setInputStyle(inputt, { "display": "block", "color": "red", 'textAlign': 'right' }, "密码不一致"); //输入的密码有问题
- }
- else {
- return true;
- }
- return false;
- }
- //#endregion
|