regist-validation.html 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>注册</title>
  6. <meta name="author" content="yihu.com"/>
  7. <meta name="format-detection" content="telephone=no"/>
  8. <meta name="viewport"
  9. content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
  10. <meta name="apple-mobile-web-app-capable" content="yes"/>
  11. <meta name="apple-mobile-web-app-status-bar-style" content="black"/>
  12. <link rel="stylesheet" href="../../../css/cross.css" type="text/css"/>
  13. <link rel="stylesheet" href="../../../css/cross.ui.css" type="text/css"/>
  14. <link rel="stylesheet" type="text/css" href="../../../iconfont/iconfont.css" />
  15. <link rel="stylesheet" type="text/css" href="../../../css/ss-style.css">
  16. <style>
  17. .n-list-info{position: relative;}
  18. .searchbar-clear{position: absolute;width: 28px;height: 28px;right: 0;top:8px;opacity:0;pointer-events:none;background-position:center;background-repeat:no-repeat;background-image:url(../../../images/delete01_pre.png);-webkit-background-size:20px 20px;background-size:20px 20px;-webkit-transition-duration:300ms;transition-duration:300ms;cursor:pointer;}
  19. #div-yzm{width:80px;height:29px;border:1px solid #4DCD70;color:#4DCD70;font-size:14px;line-height:29px;text-align:center;border-radius:10px;margin-top:7px;}
  20. .c-btn-dcdcdc{background: #DCDCDC;}
  21. .c-btn.active{background: #4DCD70;}
  22. .form-register.edit-info.registered > li {
  23. height: auto;line-height: initial;
  24. }
  25. </style>
  26. </head>
  27. <body>
  28. <div class="main">
  29. <div class="m15 c-999 c-f16">
  30. <span class="c-ff8100 mr5">*</span>请点击“获取短信验证码”,我们会向您的手机号
  31. <span class="c-ff8100" id="spanMobile"></span>发送验证码,请查收!
  32. </div>
  33. <ul class="n-list edit-info registered c-border-tb mt15 c-f15 form-register">
  34. <li class="pt5" style="padding-right: 0;">
  35. <div class="c-row"><div class="c-10">
  36. <label for="txtCode" class="n-list-key">
  37. <i class="iconfont icon-yanzhengma01"></i>
  38. </label>
  39. </div>
  40. <div class="c-40">
  41. <div class="n-list-info">
  42. <input id="txtCode" type="text" class="width-100 c-f16 c-5b5b5b" placeholder="请输入验证码">
  43. <a href="#" class="searchbar-clear" style="pointer-events: none; opacity: 0;"></a>
  44. </div></div>
  45. <div class="c-50">
  46. <div id="messageCode1" class="pl5 c-17b3ec" onclick="sendCode()">
  47. <span class="c-f14">获取短信验证码</span>
  48. </div>
  49. <div id="messageCode2" class="n-list-key pl15 c-999999" style="display: none;">
  50. <span id="message" class="c-f14"></span>
  51. </div>
  52. </div>
  53. </div>
  54. </li>
  55. </ul>
  56. <ul class="n-list edit-info registered c-border-tb mt10 c-f15 form-register">
  57. <li class="ptb5">
  58. <div class="n-list-key">
  59. <span class="f-fs16 c-323232">设置密码</span>
  60. </div>
  61. <div class="n-list-info">
  62. <input type="password" class="width-100 c-f16 c-5b5b5b reg-pwd" placeholder="请输入密码"/>
  63. <a href="#" class="searchbar-clear"></a>
  64. </div>
  65. </li>
  66. <li class="ptb5">
  67. <div class="n-list-key">
  68. <span class="f-fs16 c-323232">确认密码</span>
  69. </div>
  70. <div class="n-list-info">
  71. <input id="apwd" type="password" class="width-100 c-f16 c-5b5b5b" placeholder="请再次输入密码"/>
  72. <a href="#" class="searchbar-clear"></a>
  73. </div>
  74. </li>
  75. </ul>
  76. <div class="mlr15 mtb20">
  77. <a href="javascript:;" onclick="commit()" class="c-btn c-btn-4dcd70 c-btn-full c-btn-radius c-f18">注册</a>
  78. </div>
  79. </div>
  80. </body>
  81. <script type="text/javascript" src="../../../js/jquery/2.1.3/jquery.js" ></script>
  82. <script type="text/javascript" src="../../../js/common_http.js" ></script>
  83. <script type="text/javascript" src="../../../js/weixin_common.js" ></script>
  84. <link rel="stylesheet" type="text/css" href="../../../widget/artDialog/6.0.5/css/ui-dialog.min.css">
  85. <script src="../../../widget/artDialog/6.0.5/js/dialog-plus.min.js"></script>
  86. <script src="../../../js/security.js" type="text/javascript" charset="utf-8"></script>
  87. <script type="text/javascript" src="../../../js/mui.min.js" ></script>
  88. <script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
  89. <script type="text/javascript">
  90. var type = 0;
  91. var openid = "";
  92. var name = "";
  93. var mobile = "";
  94. var idcard = "";
  95. var ssc = "";
  96. $(function (){
  97. var paramAgent = window.localStorage.getItem("paramAgent");
  98. if(paramAgent){
  99. var jsonstr = $.parseJSON(paramAgent);
  100. type = jsonstr.type;
  101. name = decodeURI(jsonstr.name);
  102. openid = jsonstr.openid;
  103. idcard = jsonstr.idcard;
  104. mobile = jsonstr.mobile;
  105. ssc = jsonstr.ssc;
  106. var mobile2 = mobile.substring(0, 4) + "****" + mobile.substring(8, 11);
  107. document.getElementById("spanMobile").innerHTML = mobile2;
  108. }
  109. else{
  110. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'未找到参数'}).show();
  111. }
  112. bindEvents();
  113. });
  114. function bindEvents(){
  115. $("input").on("focus",function(){
  116. $(".searchbar-clear").css("pointer-events","none").css("opacity",0);
  117. if($(this).val()){
  118. $(this).next().css("pointer-events","auto").css("opacity",1);
  119. }
  120. }).on("input",function(){
  121. $(this).next().css("pointer-events","auto").css("opacity",1);
  122. });
  123. $(".n-list-info").on("click",".searchbar-clear",function(){
  124. $(this).prev().val("");
  125. $(this).css("pointer-events","none").css("opacity",0);
  126. $(this).prev().focus();
  127. return false;
  128. });
  129. }
  130. var clock = "";
  131. var nums = 60;
  132. function sendCode(){
  133. $("#messageCode1").hide();
  134. document.getElementById("message").innerHTML = nums+'秒后可重新获取';
  135. $("#messageCode2").show();
  136. clock = setInterval(doLoop, 1000); //一秒执行一次
  137. var data = {};
  138. data.mobile = mobile;
  139. data.type = 1;
  140. sendPost("common/captcha", data, "json", "post", sendFailed, sendSuccesss);
  141. }
  142. //失败
  143. function sendFailed(res) {
  144. clearInterval(clock); //清除js定时器
  145. $("#messageCode1").show();
  146. $("#messageCode2").hide();
  147. nums = 60; //重置时间
  148. if (res && res.msg) {
  149. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:res.msg}).show();
  150. } else {
  151. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'获取失败'}).show();
  152. }
  153. }
  154. function sendSuccesss(res){
  155. if (res.status == 200) {
  156. }
  157. else{
  158. sendFailed(res);
  159. }
  160. }
  161. function doLoop(){
  162. nums--;
  163. if(nums > 0){
  164. document.getElementById("message").innerHTML = nums+'秒后可重新获取';
  165. }else{
  166. clearInterval(clock); //清除js定时器
  167. $("#messageCode1").show();
  168. $("#messageCode2").hide();
  169. nums = 60; //重置时间
  170. }
  171. }
  172. var chineseReg = /.*[\u4e00-\u9fa5]+.*$/;
  173. function validPwd(){
  174. var pwd = $.trim($('.reg-pwd').val());
  175. if(chineseReg.test(pwd)){
  176. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'密码不可包含中文'}).show();
  177. return;
  178. }
  179. if(pwd.length<6){
  180. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'密码不得少于6位'}).show();
  181. return;
  182. }
  183. return pwd;
  184. }
  185. var dd = dialog({contentType:'load', skin:'bk-popup', content:'注册中...'});
  186. //提交注册
  187. function commit(){
  188. var captcha = document.getElementById("txtCode").value;
  189. if (!captcha) {
  190. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'验证码不能为空'}).show();
  191. return;
  192. }
  193. var pwd = validPwd();
  194. if(!pwd)
  195. return;
  196. var apwd = $('#apwd').val().trim();
  197. if(apwd != pwd){
  198. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'两次密码不一致'}).show();
  199. return;
  200. }
  201. var data = {};
  202. dd.showModal();
  203. //加密设置:获取公钥
  204. var encryURL = server + "login/public_key";
  205. var key = RSAUtils.getKeyFromServer(encryURL);
  206. //拼请求内容
  207. data.idcard = RSAUtils.encryStr(key, idcard);
  208. data.password = RSAUtils.encryStr(key, pwd);
  209. data.mobile = mobile;
  210. data.ssc = ssc;
  211. data.captcha = captcha;
  212. data.openid = openid;
  213. data.name = name;
  214. sendPost("weixin/regist", data, "json", "post", operateFailed, operateSuccesss);
  215. }
  216. //失败
  217. function operateFailed(res) {
  218. dd.close();
  219. if (res && res.msg) {
  220. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:res.msg}).show();
  221. } else {
  222. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'注册失败'}).show();
  223. }
  224. }
  225. //成功调用登录接口
  226. function operateSuccesss(res) {
  227. if (res.status == 200) {
  228. window.localStorage.removeItem("paramAgent");
  229. //成功
  230. var id = res.data.id;
  231. var uid = res.data.uid;
  232. var name = res.data.name;
  233. var photo = res.data.photo;
  234. var token = res.data.token;
  235. //保存用户信息
  236. wxSaveUserAgent(id, uid, openid, token);
  237. wxSaveUserAgent1(uid, name, photo);
  238. // 缓存第一个人的uid和名字,后面账号切换需要用
  239. window.localStorage.removeItem("firstUid");
  240. window.localStorage.setItem("firstUid", uid);
  241. window.localStorage.removeItem("firstName");
  242. window.localStorage.setItem("firstName", name);
  243. window.location.href = pageUrl[type];
  244. dd.close();
  245. } else {
  246. //非200则为失败
  247. operateFailed(res);
  248. }
  249. }
  250. </script>
  251. </html>