U.U.R.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379
  1. /*
  2. 问题:
  3. 1、注册的接口不完善 没有非窗体注册的函数
  4. */
  5. Namespace.register("U.U.R"); //用户注册的命名空间
  6. // 用户名 密码 确认密码 验证码 后面2个都没有用
  7. //用于判断用户是否已经在输入框中输入了正确的值。
  8. U.U.R.TBA = [false, false, false, false, false, true];
  9. //#region 用户注册信息判断
  10. //#region 用户注册使用区域
  11. //注册入口
  12. U.U.R.PopRegister = function () {
  13. var _parent = $("#UD_SYC"); //登录注册框
  14. _parent.Center(); //登录注册框居中
  15. var _child = _parent.Child(); //获取登录注册找回密码的div
  16. _child[1].style.display = "block"; //显示注册框
  17. _child[2].style.display = "none"; //隐藏注册
  18. _child[3].style.display = "none"; //隐藏登录
  19. $("div", _child[0])[2].innerHTML = "快速注册";
  20. //头部设置内容
  21. var _head = $(_child[0]).childg()[1];
  22. $(_head).addAttrArray({
  23. innerHTML: "已经有账号? <span onclick='U.U.L.Login();'>现在登录</div>",
  24. title: "",
  25. "className": "UD_SYCOSPO"
  26. });
  27. U.UI.Form({ title: "", max: false, min: false, id: "UD_SYC_Pop", content: _parent[0], style: { width: "360px", "height": "505px" }, hst: { style: { padding: "0"}} });
  28. if (!$("#UD_SYCOCDZ&img")[0]) { //注册验证码区域
  29. $$("img", { //生成验证码
  30. "alt": "看不清?点击重获验证码",
  31. "src": "http://main.1473.cn/Uses.ashx?functionname=UseStudioManage.GraphicVerificationCode&n=" + Math.random(),
  32. "onclick": [
  33. [U.U.R.GVCI, ["this"]]
  34. ]
  35. }, $("#UD_SYCOCDZ")[0]);
  36. }
  37. var _input = $("input", _child[1])[0];
  38. _input.focus();
  39. }
  40. //单击注册按钮后,首先判断是否已经阅读了云端协议,然后检查是否用户输入的信息是否全部合法。
  41. U.U.R.SDLZC = function (button) {
  42. var _inputs = $("#UD_SYCOO").find("input");
  43. //是否已经阅读了云端协议。
  44. if (_inputs[3].checked) {
  45. if (U.U.R.ZCPDSZ(_inputs, $("#UD_SYC")[0])) {
  46. button.innerText = "注册中...";
  47. } else { U.Alert("请正确的填写信息"); };
  48. } //登录
  49. else {
  50. U.Alert("请阅读云端协议");
  51. } //必须阅读协议
  52. }
  53. //注册判断设置
  54. U.U.R.ZCPDSZ = function (inputs, loading) {
  55. var i, _UTF = true;
  56. //判断是否全部通过检测。包含账号,密码,验证码等
  57. var _checked = U.U.R.TBA.indexOf(false);
  58. if (_checked == -1) {
  59. U.U.R.UR(inputs[0].value, inputs[1].value, "", loading);
  60. inputs.addAttrArray({ "value": "" });
  61. for (i = 0; i < 3; i++) { inputs[i].onblur(); }
  62. } //允许注册
  63. //判断是否通过了验证码
  64. else if (_checked == 4) {
  65. //验证码错误和正确切换字体样式。
  66. var _font = [{ "textAlign": "center", "marginRight": "0px" }, { "textAlign": "right", "marginRight": "15px", "color": "red"}];
  67. U.U.R.CAC(inputs[2], _font, U.M.apply(this, [[U.U.R.ZCPDSZ, [inputs, loading]]]));
  68. } //邮箱验证
  69. else { _UTF = !_UTF; }
  70. return _UTF;
  71. }
  72. //用户注册Ajax函数。
  73. /**
  74. //外面用户可以直接调用U.U.R.Register(username,password),调用之前必须设置全局变量US.SystemId,测试用户U.U.R.Register=0.开发者账号需要进入授权系统进行授权
  75. 返回值:
  76. */
  77. U.U.R.Register = U.U.R.UR = function (username, password, email, loading) {
  78. var i, _address = US.NLInfo.LogAddr || "";
  79. U.U.R.TBA = [false, false, false, false, false, true];
  80. U.A.Request(US.Auth, ["UserRegister", username, password, email, _address, US.SystemId, ""], U.U.R.AsynUR, [loading, _address]); //注册的同时执行登录
  81. }
  82. //用户注册异步
  83. //
  84. U.U.R.AsynUR = function (r, outsite) {
  85. var _URE = r.value;
  86. if (_URE == "notregister") {
  87. U.Alert("已经存在该账号!");
  88. }
  89. else if (_URE == "false") {
  90. U.Alert("系统繁忙,请稍后。");
  91. } //注册失败
  92. else {
  93. //注册成功直接登录
  94. U.U.L.AsynUlL(r, outsite);
  95. //第一次进入系统弹出个人设置
  96. U.U.DKGEZL();
  97. //写入用户来源信息,根据链接统计是哪一个推广人员推广的。
  98. U.U.GZ.TGR();
  99. return r;
  100. } //登录
  101. }
  102. //注册回调
  103. U.U.R.AsynSDLZC = function (UDOD, USE) {
  104. UDOD.innerText = "立即注册";
  105. }
  106. //#endregion
  107. /*
  108. 判断用户名 这里包括登录所有的用户名的审核 是否通过等。此函数在cookie登录中不会调用。
  109. 参数一:
  110. 参数二:UDE为数组,
  111. 参数三:
  112. 返回值:
  113. */
  114. U.U.R.CheckUsername = function (UDOD, UDE, UFT) {
  115. var _UN = UDOD.value;
  116. var _UDTD = $("i", $(UDOD).Parent());
  117. U.U.R.TBA[0] = false;
  118. UDE = UDE || [{}, {}];
  119. //_$(UDE).Add({ "display": "block" });
  120. U.Ut.AddArr(UDE, { "display": "block" });
  121. UDE[1].color = "red";
  122. if (UDOD.value == "") {
  123. UDE[0].color = "";
  124. U.U.R.UET(UDOD, [UDE[0], "用户账号"]);
  125. } //输入为空不做变化
  126. else if (!U.MS.UserName.test(_UN)) {
  127. U.U.R.UET(UDOD, [UDE[1], "2-10汉字或4-20字符"]);
  128. } //注册的用户不符合要求
  129. else if (!UFT) {
  130. U.U.R.UET(UDOD, [UDE[1], "等待认证,请稍后..."]);
  131. U.A.Request(US.Auth, ["CheckUserName", _UN], U.U.R.IRUN, ["", UDOD]);
  132. return true;
  133. } //用户注册 需要判断用户是否有重复的用户名
  134. return false;
  135. }
  136. //判断用户名是否存在
  137. U.U.R.IRUN = function (r) {
  138. var context = r.context,
  139. _UDOD = context[1];
  140. r = r.value;
  141. if (r == "True") {
  142. U.U.R.UET(_UDOD, [{}, "已被注册!"]);
  143. } //无法注册
  144. else {
  145. U.U.R.UET(_UDOD, [{ "display": "none"}]);
  146. U.U.R.TBA[0] = true;
  147. } //成功注册
  148. }
  149. //判断密码
  150. U.U.R.IRP = function (UDOD, UDE, UFT) {
  151. var _UTF = false;
  152. _UP = UDOD.value,
  153. _UDTD = $("i", $(UDOD).Parent());
  154. UDE = UDE || [{}, {}];
  155. U.Ut.AddObj(UDE, { "display": "block" });
  156. if (_UP == "") {
  157. UDE[0].color = "";
  158. U.U.R.UET(UDOD, [UDE[0], typeof UFT == "string" ? UFT : "6-20位字符或数字"]);
  159. } //无输入
  160. else if (!U.MS.PassWord.test(_UP)) {
  161. UDE[1].color = "red";
  162. U.U.R.UET(UDOD, [UDE[1], "6-20位字符或数字"]);
  163. } //特殊符号
  164. else {
  165. if (!UFT) {
  166. U.U.R.PasswordStrength(UDOD);
  167. _UDTD.addAttrArray({ "style": UDE[1] });
  168. }
  169. _UTF = !_UTF;
  170. } //密码正确输入
  171. (!UFT) && (U.U.R.TBA[1] = _UTF);
  172. return _UTF;
  173. }
  174. //确认密码,以前函数,暂时没有用
  175. U.U.R.RCFP = function (UDOD, UDTD, UDE, UFT) {
  176. var _UTF = false;
  177. _UP = UDOD.value,
  178. _UDTD = $("i", $(UDOD).Parent());
  179. UDE = UDE || [{}, {}];
  180. U.Ut.AddObj(UDE, { "display": "block" });
  181. if (UDOD.value == "") {
  182. UDE[0].color = "";
  183. U.U.R.UET(UDOD, [UDE[0], "6-20位字符或数字"]);
  184. } //确认密码为空
  185. else if (UDOD.value != UDTD.value) {
  186. UDE[1].color = "red";
  187. U.U.R.UET(UDOD, [UDE[1], "密码不一致"]);
  188. } //密码不一致
  189. else { _UTF = true; };
  190. (!UFT) && (U.U.R.TBA[2] = _UTF);
  191. return _UTF; //密码正确
  192. }
  193. //获取验证码
  194. U.U.R.GVCI = function (UDOD) {
  195. $(UDOD).parentg().find("img")[0].src = "http://main.1473.cn/Uses.ashx?mode=UseStudioManage.GraphicVerificationCode&n=" + Math.random();
  196. }
  197. //输入验证吗判断
  198. U.U.R.SRYZM = function (UDOD) {
  199. var _UME = UDOD.value,
  200. _UDE = !_UME ? [{ "textAlign": "center", "marginRight": "0px", "color": "#000" }, "验证码"] : U.MS.Number.test(_UME) ? "" : [{ "textAlign": "right", "marginRight": "10px", "color": "red" }, "格式错误"];
  201. if (_UDE) { U.U.R.UET(UDOD, _UDE); }
  202. else if (!U.U.R.TBA[4]) {
  203. U.U.R.CAC(UDOD, [{ "textAlign": "right", "marginRight": "15px", "color": "#00aa99" }, { "textAlign": "right", "marginRight": "15px", "color": "red"}]);
  204. }
  205. }
  206. //验证码javascript
  207. U.U.R.CAC = function (input, UDE, cb) {
  208. var _UKE, _UM = input.value;
  209. //测试是否数字,如果不是,不用向后台发送请求
  210. var _UTF = U.MS.Number.test(_UM);
  211. U.Ut.AddObj(UDE, { "display": "block" });
  212. if (_UTF) {
  213. //向后端发验证码请求
  214. U.A.Request(US.Auth, ["ConfirmGraphicVerificationCode", _UM], U.U.R.AsynAC, ["", input, UDE, cb]); _UKE = [UDE[1], "验证中..."];
  215. } //判断验证码是否正确
  216. else if (!_UTF && !_UM) {
  217. _UKE = UDE[0]; _UKE = [UDE[1], "格式错误"];
  218. };
  219. //设置验证码样式
  220. U.U.R.UET(input, _UKE || [UDE[0], "验证码"]); //验证码
  221. }
  222. //验证码异步
  223. U.U.R.AsynAC = function (r) {
  224. var _UTF = false,
  225. context = r.context,
  226. _UDOD = context[1],
  227. _UDE = context[2],
  228. _UCB = context[3],
  229. _UDPD = $(_UDOD).Parent(3);
  230. r = r.value;
  231. if (r == "True") {
  232. _UDE[0].display = "none";
  233. U.U.R.UET(_UDOD, [_UDE[0], "成功"]);
  234. _UTF = true;
  235. }
  236. else if (r == "False") {
  237. U.U.R.UET(_UDOD, [_UDE[1], "错误"]);
  238. } //验证码正确
  239. else {
  240. _UDOD.value = "";
  241. _UDOD.blur();
  242. U.U.R.UET(_UDOD, [_UDE[0], "验证码"]);
  243. $("img", _UDPD)[0].src = "http://main.1473.cn/Uses.ashx?mode=UseStudioManage.GraphicVerificationCode&n=" + Math.random();
  244. _UDOD.focus(); U.Alert("验证码错误或者服务器繁忙");
  245. } //重新生成验证码
  246. U.U.R.TBA[4] = _UTF;
  247. if (_UCB && _UTF) { _UCB(_UDPD) }
  248. else { U.U.R.AsynSDLZC($("#UD_SYCOD")[0]); } //设置回调
  249. }
  250. //判断邮箱
  251. U.U.R.RUE = function (UDOD) {
  252. var _UEM = UDOD.value;
  253. U.U.R.TBA[3] = false;
  254. if (_UEM == "") {
  255. $("i", UDOD.parentNode)[0].style.display = "block";
  256. }
  257. else if (!U.MS.Email.test(_UEM)) {
  258. U.U.R.UET(UDOD, [{}, "邮箱格式错误"]);
  259. } //验证码格式错误
  260. else {
  261. U.A.Request(US.Auth, ["CheckEmail", _UEM], U.U.R.AsynRUE, ["", UDOD]);
  262. }
  263. }
  264. //判断邮箱的异步
  265. U.U.R.AsynRUE = function (r) {
  266. var context = r.context,
  267. _UDOD = context[1];
  268. r = r.value;
  269. if (r) {
  270. U.U.R.TBA[3] = true;
  271. U.U.R.UET(_UDOD, [{ "display": "none"}]);
  272. } //成功设置
  273. else {
  274. U.U.R.UET(_UDOD, [{}, "已经有人有过该邮箱"]);
  275. } //邮箱有人用
  276. }
  277. //判断手机是否正确
  278. U.U.R.UPhone = function () {
  279. }
  280. U.U.R.AsynUPhone = function () {
  281. }
  282. //隐藏提示框
  283. U.U.R.DTT = function (UDOD, UTF) {
  284. var _UDPD = $(UDOD).Parent(),
  285. _UDID = $("input", _UDPD)[0];
  286. if (_UDID.offsetWidth) {
  287. (UTF !== true) && (_UDID.focus());
  288. $("i", _UDPD)[0].style.display = "none";
  289. }
  290. }
  291. //显示提示框
  292. U.U.R.BTT = function (UDOD) {
  293. // $(UDOD).parentg().find("i").addAttrArray({ "style": { "display": "block"} });
  294. }
  295. //设置样式
  296. U.U.R.UET = function (input, arr) {
  297. //找input输入框的父亲元素
  298. var _parent = $(input).Parent();
  299. //指定的元素里面找孩子元素为i的元素
  300. var _el = $("i", _parent);
  301. arr[0].display = "block";
  302. _el.addAttrArray({ "style": arr[0] || {}, "innerHTML": arr[1] || "" }, 0)[0];
  303. }
  304. U.U.R.PasswordStrength = function (input) {
  305. var i = 0;
  306. var _UNR = "";
  307. var _UV = input.value;
  308. var _URE = [["弱", "#e64141"], ["中", "#0a8cd2"], ["强", "#4bb900"]];
  309. if (_UV.length > 10) {
  310. //_UNR += ">10位";
  311. i++;
  312. }
  313. //含数字
  314. if (_UV.match(/[0-9]/ig)) {
  315. //_UNR += ((i ? "," : "") + "只包含数字");
  316. i++;
  317. }
  318. //含字符
  319. if (_UV.match(/[a-z]/ig)) {
  320. //_UNR += ((i ? "," : "") + "只包含字符");
  321. i++;
  322. }
  323. i = i - 1 > -1 ? i - 1 : i;
  324. //找input输入框的父亲元素
  325. var _parent = $(input).Parent();
  326. //指定的元素里面找孩子元素为i的元素
  327. var _el = $("i", _parent);
  328. _el.addAttrArray({ "style": { "display": "block", "color": _URE[i][1] }, "innerHTML": _URE[i][0] }, 0); //设置密码样式
  329. }
  330. //注册最终判断是否允许注册
  331. //U.U.R.RC = function () {
  332. // return U.U.R.TBA.indexOf(false);
  333. //}
  334. //#endregion