forget_password.html 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. <!DOCTYPE html>
  2. <html lang="zh-CN" xmlns="http://www.w3.org/1999/xhtml"
  3. xmlns:th="http://www.thymeleaf.org">
  4. <head>
  5. <meta charset="UTF-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <title>慕测平台</title>
  8. <meta name="keywords" content="" />
  9. <meta name="description" content="" />
  10. <link rel="stylesheet" type="text/css" th:href="@{/vendor/bootstrap/css/bootstrap.min.css}">
  11. <link rel="stylesheet" type="text/css" th:href="@{/fonts/font-awesome-4.7.0/css/font-awesome.min.css}">
  12. <link rel="stylesheet" type="text/css" th:href="@{/fonts/iconic/css/material-design-iconic-font.min.css}">
  13. <link rel="stylesheet" type="text/css" th:href="@{/css/util.css}">
  14. <link rel="stylesheet" type="text/css" th:href="@{/css/main.css}">
  15. </head>
  16. <body>
  17. <div class="limiter">
  18. <div class="container-login100" th:style="'background-image:url(/images/bg.jpg);'">
  19. <div class="wrap-login100 p-l-40 p-r-40 p-t-30 p-b-25">
  20. <!--邮箱找回-->
  21. <form id="byEmail" th:action="@{/page/forgetPassword/check/email}" method="post" class="login100-form">
  22. <div id="login-logo" class="p-b-15" style="text-align: center;">
  23. <img style="width: 80px;" th:src="@{/images/mooctest.png}" >
  24. </div>
  25. <span class="login100-form-title p-b-30">找回密码</span>
  26. <div class="wrap-input100 validate-input m-b-23" data-validate="请输入邮箱">
  27. <span class="label-input100">邮箱</span>
  28. <input id="email" class="input100" type="email" name="mobile" placeholder="请输入邮箱" required="邮箱不可为空">
  29. <span class="focus-input100" data-symbol="&#xf206;"></span>
  30. </div>
  31. <div class="wrap-input100 validate-input" data-validate="请输入验证码">
  32. <span class="label-input100">验证码</span>
  33. <input class="input100" type="text" name="verifyCode" placeholder="请输入验证码" required="验证码不可为空">
  34. <span class="focus-input100" data-symbol="&#xf190;"></span>
  35. </div>
  36. <div p-t-8 p-b-20>
  37. <div class="text-right">
  38. <a href="#" onclick="findByMobile()">手机找回</a>
  39. </div>
  40. </div>
  41. <div class="text-center p-t-6 p-b-8">
  42. <span id="e_info" style="color: red" th:text="${result==null}?'&nbsp;':${result.msg}"></span>
  43. </div>
  44. <div class="container-login100-form-btn" style="width: 50%; float: left;">
  45. <div class="wrap-login100-form-btn">
  46. <div class="login100-form-bgbtn"></div>
  47. <button type="button" id="sendMobileVerify" class="login100-form-btn" onclick="sendEmailVerifyCode(this)" >获取验证码</button>
  48. </div>
  49. </div>
  50. <div class="container-login100-form-btn">
  51. <div class="wrap-login100-form-btn">
  52. <div class="login100-form-bgbtn"></div>
  53. <button type="submit" class="login100-form-btn">验 证</button>
  54. </div>
  55. </div>
  56. <div class="flex-col-c p-t-10">
  57. <a href="/page/login" class="txt2">返回登录</a>
  58. </div>
  59. </form>
  60. <!--手机找回-->
  61. <form id="byMobile" style="display: none;" th:action="@{/page/forgetPassword/check/mobile}" method="post" class="login100-form">
  62. <div style="text-align: center;" class="p-b-15">
  63. <img style="width: 80px;" th:src="@{/images/mooctest.png}" >
  64. </div>
  65. <span class="login100-form-title p-b-30">找回密码</span>
  66. <div class="wrap-input100 validate-input m-b-23" data-validate="请输入手机号">
  67. <span class="label-input100">手机号</span>
  68. <input id="mobile" class="input100" type="text" name="mobile" placeholder="请输入手机号" required="手机号不可为空">
  69. <span class="focus-input100" data-symbol="&#xf2c8;"></span>
  70. </div>
  71. <div class="wrap-input100 validate-input" data-validate="请输入验证码">
  72. <span class="label-input100">验证码</span>
  73. <input class="input100" type="text" name="verifyCode" placeholder="请输入验证码" required="验证码不可为空">
  74. <span class="focus-input100" data-symbol="&#xf190;"></span>
  75. </div>
  76. <div p-t-8 p-b-20>
  77. <div class="text-right">
  78. <a href="#" onclick="findByEmail()">邮箱找回</a>
  79. </div>
  80. </div>
  81. <div class="text-center p-t-6 p-b-8">
  82. <span id="m_info" style="color: red" th:text="${result==null}?'&nbsp;':${result.msg}"></span>
  83. </div>
  84. <div class="container-login100-form-btn" style="width: 50%; float: left;">
  85. <div class="wrap-login100-form-btn">
  86. <div class="login100-form-bgbtn"></div>
  87. <button type="button" id="sendVerify" class="login100-form-btn" onclick="sendMobileVerifyCode(this)" >获取验证码</button>
  88. </div>
  89. </div>
  90. <div class="container-login100-form-btn">
  91. <div class="wrap-login100-form-btn">
  92. <div class="login100-form-bgbtn"></div>
  93. <button type="submit" form="byMobile" class="login100-form-btn">验 证</button>
  94. </div>
  95. </div>
  96. <div class="flex-col-c p-t-10">
  97. <a href="/page/login" class="txt2">返回登录</a>
  98. </div>
  99. </form>
  100. </div>
  101. </div>
  102. </div>
  103. <script th:src="@{/vendor/jquery/jquery-3.2.1.min.js}"></script>
  104. <script th:src="@{/js/main.js}"></script>
  105. <script type="text/javascript">
  106. function findByEmail() {
  107. document.getElementById("byEmail").style.display="block";
  108. document.getElementById("byMobile").style.display="none";
  109. document.getElementById("m_info").innerHTML="&nbsp;";
  110. document.getElementById("e_info").innerHTML="&nbsp;";
  111. return false;
  112. }
  113. function findByMobile() {
  114. document.getElementById("byEmail").style.display="none";
  115. document.getElementById("byMobile").style.display="block";
  116. document.getElementById("m_info").innerHTML="&nbsp;";
  117. document.getElementById("e_info").innerHTML="&nbsp;";
  118. return false;
  119. }
  120. function sendMobileVerifyCode(obj) {
  121. var mobile = $("#mobile").val();
  122. if (mobile == null || mobile.trim() == "") {
  123. document.getElementById("m_info").innerText = "手机号不能为空";
  124. return;
  125. }
  126. if (!mobile.match(/^(13[0-9]{9})|(18[0-9]{9})|(14[0-9]{9})|(17[0-9]{9})|(15[0-9]{9})$/)){
  127. document.getElementById("info").innerText = "手机号格式不正确,请重新输入";
  128. return
  129. }
  130. var data = {"mobile":mobile};
  131. $.ajax({
  132. url:"/api/verify/mobile",
  133. type:"PUT",
  134. data:data,
  135. timeout: 3000,
  136. success:function (result) {
  137. console.log(result);
  138. if (result.status != 2000) {
  139. alert("发送失败, 原因:"+result.msg);
  140. document.getElementById("m_info").innerText = result.msg;
  141. }else{
  142. alert("发送成功,请尽快查收!");
  143. document.getElementById("m_info").innerHTML = "&nbsp;";
  144. settime(obj);
  145. }
  146. }
  147. })
  148. }
  149. function sendEmailVerifyCode(obj) {
  150. var email = $("#email").val();
  151. if (email == null || email.trim() == "") {
  152. document.getElementById("e_info").innerText = "邮箱不能为空";
  153. return;
  154. }
  155. if (!email.match(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{1,5}|[0-9]{1,3})(\]?)$/)){
  156. document.getElementById("e_info").innerText = "邮箱格式不正确,请重新输入";
  157. return
  158. }
  159. var data = {"email":email};
  160. $.ajax({
  161. url:"/api/verify/mail",
  162. type:"PUT",
  163. data:data,
  164. timeout: 3000,
  165. success:function (result) {
  166. console.log(result);
  167. if (result.status != 2000) {
  168. alert("发送失败, 原因:"+result.msg);
  169. }else{
  170. alert("发送成功,请前往邮箱查收!");
  171. document.getElementById("e_info").innerHTML = "&nbsp;"
  172. settime(obj);
  173. }
  174. }
  175. })
  176. }
  177. </script>
  178. </body>
  179. </html>