regist.html 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. <link rel="stylesheet" type="text/css" href="/analysis/css/styles.css">
  2. <script src="/analysis/js/jquery-3.2.1.min.js"></script>
  3. <script src="/analysis/js/jquery.validate-1.19.3.min.js"></script>
  4. <script src="/analysis/js/layer.js"></script>
  5. <script src="/analysis/js/md5.js"></script>
  6. <div class="inputDiv1">
  7. <div class="inputDiv2">
  8. <form id="form1">
  9. <div>姓名</div>
  10. <div><input id="name" name="name" value="" type="text"
  11. required maxlength="15"
  12. data-msg-required="请输姓名"
  13. data-msg-maxlength="姓名不能超过15个字"></div>
  14. <div>性别</div>
  15. <div>
  16. <select id="sex" name="sex">
  17. <option></option>
  18. <option value="0">男</option>
  19. <option value="1">女</option>
  20. </select>
  21. </div>
  22. <div>年龄</div>
  23. <div><input id="age" name="age" value="" type="number"
  24. maxlength="3" min="1"
  25. data-msg-maxlength="年龄不能超过3位数"
  26. data-msg-min="年龄不能小于1">
  27. </div>
  28. <div>密码</div>
  29. <div><input id="password" name="password" value="" type="password"
  30. required maxlength="11" minlength="8"
  31. data-msg-required="请输入密码"
  32. data-msg-maxlength="密码长度必须8-11位数且包含数字和大小写字母"
  33. data-msg-minlength="密码长度必须8-11位数且包含数字和大小写字母"
  34. ></div>
  35. <div>确认密码</div>
  36. <div><input id="re_pwd" name="re_pwd" value="" type="password"
  37. required maxlength="11"
  38. data-msg-required="请再次输入密码"
  39. data-msg-maxlength="密码长度必须8-11位数且包含数字和大小写字母"
  40. ></div>
  41. <div>手机号码</div>
  42. <div><input id="phone" name="phone" value="" type="text"
  43. required minlength="11" maxlength="11" number="true"
  44. data-msg-required="请输入手机号码"
  45. data-msg-minlength="手机号码不正确"
  46. data-msg-maxlength="手机号码不正确"
  47. data-msg-number="手机号码不正确"
  48. ></div>
  49. <div>验证码</div>
  50. <!-- <img id="qrImage" style="margin: 0 auto;" src="/analysis/captcha/image" onclick="this.src='/analysis/captcha/image?'+Math.random()">-->
  51. <div style="width: 100%; margin: 0 auto; line-height: 40px">
  52. <input style="width: 30%" id="qrcode" name="qrcode" value="" type="text"
  53. required maxlength="6"
  54. data-msg-required="请输入验证码">
  55. <span id="sendQr"><a href="javascript:getPhoneQr()">点击获取手机验证码</a></span>
  56. <span id="countdown">120</span>
  57. <!-- <input style="width: 30%" type="button" value="获取手机验证码">-->
  58. </div>
  59. </form>
  60. <div>&nbsp;</div>
  61. <div style="width: 100%; text-align: center; margin: 0 auto">
  62. <!-- <a href="javascript:regist()" style="text-decoration: none; color: #ffffff">-->
  63. <button class="blueBtnDiv" onclick="regist()" style="cursor:pointer; border: 0">
  64. 注册
  65. </button>
  66. <!-- </a>-->
  67. </div>
  68. <div>&nbsp;</div>
  69. </div>
  70. </div>
  71. <script type="text/javascript">
  72. $(function () {
  73. $("#countdown").hide()
  74. })
  75. function getPhoneQr() {
  76. if ($("#phone").valid()) {
  77. var data = {};
  78. data.phone = btoa($("#phone").val())
  79. $.ajax({
  80. url: '/analysis/phoneQr/send',
  81. type: 'POST',
  82. data: JSON.stringify(data),
  83. contentType: "application/json",
  84. dataType: 'json',
  85. success: function (res) {
  86. // layer.close(LAYER_LOAD_ID)
  87. if (res.code == 0) {
  88. // window.parent.isLogin = true
  89. layer.alert("手机验证码已成功发送", {icon: 1}, function () {
  90. layer.closeAll()
  91. // window.parent.layer.close(window.parent.LAYER_ID)
  92. startCountdown()
  93. });
  94. } else {
  95. // window.parent.isLogin = false
  96. layer.alert(res.message, {icon: 2});
  97. }
  98. },
  99. error: function (xhr, status, error) {
  100. // layer.close(LAYER_LOAD_ID)
  101. console.error('访问服务器错误:', error);
  102. window.parent.isLogin = false
  103. layer.alert("服务器繁忙,请稍后重试!", {icon: 2});
  104. },
  105. complete: function (XHR, TS) {
  106. // layer.close(LAYER_LOAD_ID)
  107. // $("#qrImage").attr('src', '/analysis/captcha/image?' + Math.random())
  108. }
  109. });
  110. }
  111. }
  112. var countdown = 120
  113. function startCountdown() {
  114. $("#sendQr").hide()
  115. $("#countdown").show()
  116. $("#countdown").text(countdown + '秒后重新发送');
  117. timer = setInterval(function () {
  118. countdown--;
  119. if (countdown > 0) {
  120. $("#countdown").text(countdown + '秒后重新发送');
  121. } else {
  122. clearInterval(timer);
  123. countdown = 120; // 重置倒计时
  124. // $btn.prop('disabled', false).text('发送验证码');
  125. $("#sendQr").show()
  126. $("#countdown").hide()
  127. }
  128. }, 1000);
  129. }
  130. function pswdStrength(val) {
  131. return /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/.test(val);
  132. }
  133. function checkStrength(password) {
  134. let strength = 0;
  135. if (password.length >= 8) strength++;
  136. if (/[A-Z]/.test(password)) strength++;
  137. if (/[a-z]/.test(password)) strength++;
  138. if (/[0-9]/.test(password)) strength++;
  139. if (/[@$!%*?&]/.test(password)) strength++;
  140. return strength
  141. // switch(strength) {
  142. // case 5: return "STRONG"; // 最强
  143. // case 4: return "MEDIUM";
  144. // case 3: return "WEAK";
  145. // default: return "TOO_WEAK";
  146. // }
  147. }
  148. function regist() {
  149. // alert(checkStrength($("#password").val()), {icon: 2})
  150. if (!$("#form1").valid()) {
  151. return
  152. }
  153. if (checkStrength($("#password").val()) <= 3) {
  154. layer.alert("密码长度必须8-11位数且包含大小写字母,数字", {icon: 2});
  155. return;
  156. }
  157. if ($("#password").val() != $("#re_pwd").val()) {
  158. layer.alert("两次输入的密码不一致!", {icon: 2});
  159. return;
  160. }
  161. const t = $("#form1").serializeArray()
  162. var data = {};
  163. $.each(t, function (i, field) {
  164. data[field.name] = field.value;
  165. });
  166. data.password = hex_md5(data.password)
  167. data.phone = btoa(data.phone)
  168. const LAYER_LOAD_ID = layer.load(2)
  169. $.ajax({
  170. url: '/analysis/regist/doReg',
  171. type: 'POST',
  172. data: JSON.stringify(data),
  173. contentType: "application/json",
  174. dataType: 'json',
  175. success: function (res) {
  176. // layer.close(LAYER_LOAD_ID)
  177. if (res.code == 0) {
  178. // window.parent.isLogin = true
  179. layer.alert("注册成功", {icon: 1}, function () {
  180. layer.closeAll()
  181. window.parent.layer.close(window.parent.LAYER_ID)
  182. });
  183. } else {
  184. // window.parent.isLogin = false
  185. layer.alert(res.message, {icon: 2});
  186. }
  187. },
  188. error: function (xhr, status, error) {
  189. // layer.close(LAYER_LOAD_ID)
  190. console.error('访问服务器错误:', error);
  191. window.parent.isLogin = false
  192. layer.alert("服务器繁忙,请稍后重试!", {icon: 2});
  193. },
  194. complete: function (XHR, TS) {
  195. layer.close(LAYER_LOAD_ID)
  196. // $("#qrImage").attr('src', '/analysis/captcha/image?' + Math.random())
  197. }
  198. });
  199. }
  200. </script>