123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411 |
- /*
- 问题:
- 1、注册的接口不完善 没有非窗体注册的函数
- */
- Namespace.register("U.MD.U.R"); //用户注册的命名空间
- // 用户名 密码 确认密码 验证码 后面2个都没有用
- //用于判断用户是否已经在输入框中输入了正确的值。
- U.MD.U.R.isregister = [false, false, false, false, false, true];
- //#region 用户注册信息判断
- //#region 用户注册使用区域
- /**
- * 弹出注册框的处理
- *
- */
- U.MD.U.R.register = function () {
- var _parent = $("#U_MD_U_L_login"); //登录注册框
- //弹出注册框
- // new U.UF.UI.form("", _parent[0],
- // {
- // "id": "U_MD_HomeC_Pop",
- // "style": {
- // "width": "360px",
- // "height": "505px"
- // }
- // },
- // {
- // isdrag: false,
- // isstretching: false,
- // isenlarge: false,
- // isnarrow: false
- // });
- var _child = _parent.Child(); //获取登录注册找回密码的div
- _child[1].style.display = "block"; //显示注册框
- _child[2].style.display = "none"; //隐藏注册
- _child[3].style.display = "none"; //隐藏登录
- $("div", _child[0])[2].innerHTML = "快速注册";
- //头部设置内容
- var _head = $(_child[0]).childs()[1];
- //设置头部内容
- $(_head).addAttrArray({
- innerHTML: "已经有账号? <span onclick='U.MD.U.L.init();'>现在登录</div>",
- title: "",
- "className": "U_MD_U_L_Top_Yun"
- });
- //注册验证码区域
- if (!$("#U_MD_U_R_VC_Img img")[0]) {
- //"onerror": U.MD.C.imgError,
- $$("img", { //生成验证码
- "alt": "看不清?点击重获验证码",
- "src": "http://main.1473.cn/Uses.ashx?mode=GraphicVerificationCode&n=" + Math.random(),
- "onclick": function () {
- U.MD.U.R.regenerateVerificaCode(this);
- }
- }, $("#U_MD_U_R_VC_Img")[0]);
- }
- //输入框聚焦
- var _input = $("input", _child[1])[0];
- _input.focus();
- }
- /**
- * 重新生成验证码
- * @param {element} 生成验证码的图片
- *
- */
- U.MD.U.R.regenerateVerificaCode = function (image) {
- image.src = "http://main.1473.cn/Uses.ashx?mode=GraphicVerificationCode&n=" + Math.random();
- }
- /**
- * 单击注册按钮后,首先判断是否已经阅读了云端协议,然后检查是否用户输入的信息是否全部合法。
- * @param {element} 按钮
- *
- */
- U.MD.U.R.clickRegister = function (button) {
- var _inputs = $("#U_MD_U_R_I").find("input");
- //是否已经阅读了云端协议。
- if (_inputs[3].checked) {
- //判断注册的信息是否通过,都通过直接注册处理
- if (U.MD.U.R.isRegister(_inputs, button) && _inputs[2].value != "") {
- U.MD.U.R.ajaxRegister(_inputs[0].value, _inputs[1].value, "", $("#U_MD_U_L_login")[0]); //调用ajax的注册
- _inputs.addAttrArray({ "value": "" }); //注册可以通过,那么所有填写的信息都删除
- //调用这个复原输入框的样式
- for (i = 0; i < _inputs.length; i++) {
- if (_inputs[i].offsetWidth && _inputs[i].onblur) { //如果input没有隐藏的情况
- _inputs[i].onblur();
- }
- }
- button.innerText = "注册中..."; //注册按钮提示处理
- }
- //弹出提示框
- else if (_inputs[0].value != "" && _inputs[1].value == "") {
- U.alert("请填写密码");
- }else if (_inputs[1].value != "" && _inputs[2].value == "") {
- U.alert("请正确填写信息");
- }
- else {
- U.alert("请正确的填写信息");
- }
- }
- //如果没有勾选云端协议处理
- else {
- U.alert("请阅读云端协议");
- }
- }
- /**
- * 注册判断设置
- * @param {element} 输入的框
- * @param {element} 按钮
- *
- */
- U.MD.U.R.isRegister = function (inputs, button) {
- var _checked = U.MD.U.R.isregister.indexOf(false); //判断注册的信息里是否有没有填写或者填写有问题的
- //如果所有的填写数据都是成功的处理
- if (_checked == -1) {
- return true;
- }
- //如果错误只是验证码错误
- else if (_checked == 4) {
- //验证码获取
- U.MD.U.R.verificationCode(inputs[2], function () {
- U.MD.U.R.clickRegister(button); //验证码获取成功后的回调处理
- });
- return true;
- }
- return false;
- }
- //用户注册Ajax函数。
- /**
- //外面用户可以直接调用U.MD.U.R.register(username,password),调用之前必须设置全局变量US.systemId,测试用户U.MD.U.R.register=0.开发者账号需要进入授权系统进行授权
- 返回值:
- */
- U.MD.U.R.ajaxRegister = U.MD.U.R.UR = function (username, password, email, loading) {
- U.MD.U.R.isregister = [false, false, false, false, false, true]; //注册成功响应后,允许注册的值改成false
- //注册处理,调用后台注册
- U.A.Request(US.USER, ["UserRegister", username, password, email, US.city.userAllLocation, ""],
- U.MD.U.R.asynRegister, [loading, US.city.userAllLocation]); //注册的同时执行登录
- }
- /**
- * 用户注册异步
- * @param {element} 输入的框
- * @param {element} 按钮
- *
- */
- U.MD.U.R.asynRegister = function (r, outsite) {
- var value = r.value;
- //账号重复注册的处理
- if (value == "notregister") {
- U.alert("已经存在该账号!");
- }
- //注册失败
- else if (value == "false") {
- U.alert("系统繁忙,请稍后。");
- }
- //注册成功,直接登录处理
- else {
- //注册成功直接登录
- U.MD.U.L.asynLoginAjax(r);
- //写入用户来源信息,根据链接统计是哪一个推广人员推广的。
- U.MD.U.NP.TGR();
- return r;
- }
- }
- /**
- * 验证码javascript
- * @param {element} 输入的框
- * @param {element} 按钮
- *
- */
- U.MD.U.R.verificationCode = function (input, cb) {
- var _code = input.value, //输入的验证码值
- _isnumber = U.UF.S.Number.test(_code); //判断输入的验证码是否符合格式
- if (_isnumber) {
- //发送ajax判断是否注册成功
- U.A.Request(US.USER, ["ConfirmGraphicVerificationCode", _code],
- U.MD.U.R.asynVerificationCode, ["", input, cb]);
- //验证码样式设置
- U.MD.U.R.setInputStyle(input, { 'textAlign': 'right', 'color': 'red', "display": "block" }, "验证中...");
- }
- else if (_code) {
- //验证码样式设置
- U.MD.U.R.setInputStyle(input, { 'textAlign': 'right', 'color': 'red', "display": "block" }, "格式错误");
- }
- else {
- //验证码样式设置
- U.MD.U.R.setInputStyle(input, { 'textAlign': 'right', 'color': '#00aa99', "display": "block" }, "验证码");
- }
- }
- /**
- * 验证码异步
- *
- */
- U.MD.U.R.asynVerificationCode = function (r) {
- var _context = r.context, //参数
- _input = _context[1], //验证码输入框
- _cb = _context[2] //回调函数
- ;
- r = r.value; //得到后台数据库返回的值
- //如果验证码正确的处理
- if (r == "True") {
- U.MD.U.R.setInputStyle(_input, { 'textAlign': 'right', 'marginRight': '0px', 'color': '#00aa99', "display": "block" }, "成功"); //设置提示说明样式
- U.MD.U.R.isregister[4] = true; //设置验证码成功
- if (U.UF.C.isFunction(_cb)) {
- _cb(); //成功后的回调
- }
- }
- //验证码正确
- else if (r == "False") {
- U.MD.U.R.setInputStyle(_input, { 'textAlign': 'right', 'marginRight': '15px', 'color': 'red', "display": "block" }, "错误"); //设置提示说明样式
- return false;
- }
- //重新生成验证码
- else {
- _input.value = ""; //清空验证码输入
- _input.blur(); //调用blur复原输入框值
- U.MD.U.R.setInputStyle(_input, { 'textAlign': 'center', 'marginRight': '0px', 'color': '#00aa99', "display": "block" }, "验证码"); //设置提示说明样式
- $("img", $(_input).Parent(3))[0].src = "http://main.1473.cn/Uses.ashx?mode=GraphicVerificationCode&n=" + Math.random(); //重新生成验证码
- _input.focus(); //验证码聚焦
- U.alert("验证码错误或者服务器繁忙"); //弹出服务器繁忙
- }
- }
- //#endregion
- /*
- 判断用户名 这里包括登录所有的用户名的审核 是否通过等。此函数在cookie登录中不会调用。
- 参数一:
- 参数二:UDE为数组,
- 参数三:
- 返回值:
- */
- U.MD.U.R.checkUserName = function (inputel) {
- var _username = inputel.value; //获取用户名
- //输入为空不做变化
- $('.U_MD_U_L_Box_U_B').removeClass(" U_MD_U_L_Box_mistakeBorder");
- if ($('.U_MD_U_L_Box_checkUseNameFormat')[0]) {//检测账号格式提示是否存在
- $('.U_MD_U_L_Box_checkUseNameFormat')[0].parentNode.removeChild($('.U_MD_U_L_Box_checkUseNameFormat')[0]);
- }
- if (_username == "") {
- U.MD.U.R.setInputStyle(inputel, { "display": "block", 'textAlign': 'left' }, "用户账号"); //输入的用户名为空的样式处理
- }
- //注册的用户不符合要求
- else if (!U.UF.S.UserName.test(_username)) {
- $('.U_MD_U_L_Box_U_B').addClass(" U_MD_U_L_Box_mistakeBorder");
- U_MD_U_L_createFormat($('.U_MD_U_L_LB')[0], $('.U_MD_U_L_Box_P_B')[0]);
- //U.MD.U.R.setInputStyle(inputel, { "display": "block", 'textAlign': 'right' }, "2-10汉字或4-20字符"); //注册用户名不符合提示
- }
- //用户注册 需要判断用户是否有重复的用户名
- else {
- U.MD.U.R.setInputStyle(inputel, { "display": "block", 'textAlign': 'right' }, "等待认证,请稍后..."); //设置注册的提示
- U.A.Request(US.USER, ["CheckUserName", _username], U.MD.U.R.asynCheckUserName, ["", inputel]);
- }
- }
- /**
- *创建用户账号是否标准提醒
- *
- */
- U_MD_U_L_createFormat = function (parentnode, beforenode) {
- if (beforenode == $('.U_MD_U_L_Box_P_B')[0] && $('.U_MD_U_L_Box_checkUseNameFormat')[0]) {
- $('.U_MD_U_L_Box_checkUseNameFormat')[0].parentNode.removeChild($('.U_MD_U_L_Box_checkUseNameFormat')[0]);
- }
- var _format = document.createElement('div');
- _format.className = "U_MD_U_L_Box_checkUseNameFormat";
- _format.innerText = "2-10汉字或4-20字符";
- parentnode.insertBefore(_format, beforenode);
- }
- /**
- * 判断用户名是否存在
- * @param {object} ajax对象
- *
- */
- U.MD.U.R.asynCheckUserName = function (r) {
- var _context = r.context,
- _inputel = _context[1];
- r = r.value;
- //无法注册
- if (r == true) {
- U.MD.U.R.setInputStyle(_inputel, { "color": "red" }, "已被注册!");
- }
- //成功注册
- else {
- U.MD.U.R.setInputStyle(_inputel, { "display": "none" });
- U.MD.U.R.isregister[0] = true;
- }
- }
- /**
- * 判断密码输入是否有问题
- * @param {object} ajax对象
- *
- */
- U.MD.U.R.checkPassword = function (inputel) {
- var _password = inputel.value;
- $('.U_MD_U_L_Box_P_B').removeClass(" U_MD_U_L_Box_mistakeBorder");
- if ($('.U_MD_U_L_Box_checkPWFormat')[0]) {
- $('.U_MD_U_L_Box_checkPWFormat')[0].parentNode.removeChild($('.U_MD_U_L_Box_checkPWFormat')[0]);
- }
- //如果没有输入密码
- 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_L_Box_P_B').addClass(" U_MD_U_L_Box_mistakeBorder");
- U_MD_U_L_checkPWFormat($('.U_MD_U_L_LB')[0], $('.U_MD_U_R_VC')[0]);
- //U.MD.U.R.setInputStyle(inputel, { "display": "block", "color": "red", 'textAlign': 'right', 'marginRight': '15px' }, "6-20位字符或数字"); //输入的密码有问题
- }
- //输入
- else {
- U.MD.U.R.passwordStrength(inputel); //判断输入的密码强度
- U.MD.U.R.isregister[1] = true; //设置已经成功通过密码审核
- return true;
- }
- return false;
- }
- /**
- *创建用户账号是否标准提醒
- *
- */
- U_MD_U_L_checkPWFormat = function (parentnode, beforenode) {
- if (beforenode == $('.U_MD_U_R_VC')[0] && $('.U_MD_U_L_Box_checkPWFormat')[0]) {
- $('.U_MD_U_L_Box_checkPWFormat')[0].parentNode.removeChild($('.U_MD_U_L_Box_checkPWFormat')[0]);
- }
- var _format = document.createElement('div');
- _format.className = "U_MD_U_L_Box_checkPWFormat";
- _format.innerText = "2-10汉字或4-20字符";
- parentnode.insertBefore(_format, beforenode);
- }
- /**
- * 隐藏提示框,隐藏提示框,一般都在在点击重新输入,或者是点击取消提示框的时候使用
- * @param {object} ajax对象
- *
- */
- U.MD.U.R.hidePromptBox = function (el) {
- var _parentel = $(el).Parent(); //上级父亲层;
- $("i", _parentel)[0].style.display = "none"; //提示框隐藏
- try {
- $("input", _parentel)[0].focus();
- }
- catch (e) { }
- }
- /**
- * 设置样式
- * @param {element} 输入的框
- * @param {element} 样式
- *
- */
- U.MD.U.R.setInputStyle = function (input, styles, text) {
- //找input输入框的父亲元素
- var _parent = $(input).Parent();
- //指定的元素里面找孩子元素为i的元素
- var _el = $("i", _parent);
- styles.display = "block";
- _el.addAttrArray({ "style": styles, "innerHTML": text || "" }, 0)[0];
- }
- /**
- * 设置样式
- * @param {element} 输入的框+
- *
- */
- U.MD.U.R.passwordStrength = function (input) {
- var i = 0,
- _value = input.value,
- _arr = [
- ["弱", "#e64141"],
- ["中", "#0a8cd2"],
- ["强", "#4bb900"]];
- //如果输入的内容大于10,那么加一
- if (_value.length > 10) {
- i++;
- }
- //如果输入的内容含数字,那么加一
- if (_value.match(/[0-9]/ig)) {
- i++;
- }
- //如果输入的内容含字符,那么加一
- if (_value.match(/[a-z]/ig)) {
- i++;
- }
- //选择输入的强度数字
- i = i > 0 ? i - 1 : i;
- //找input输入框的父亲元素
- var _parent = $(input).Parent();
- //指定的元素里面找孩子元素为i的元素
- var _el = $("i", _parent);
- //设置样式
- _el.addAttrArray({
- "style": {
- "textAlign": "right",
- "display": "block",
- "color": _arr[i][1]
- },
- "innerHTML": _arr[i][0]
- }, 0); //设置密码样式
- }
- //#endregion
|