register_person_email.blade.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. @extends('mobile.module.layouts.content')
  2. @push('meta')
  3. @endpush
  4. @push('css')
  5. <link href="{{ theme_asset('mobile/css/members.css') }}" rel="stylesheet">
  6. @endpush
  7. @push('js')
  8. <script type="text/javascript" src="{{ theme_asset('gt/gt.js') }}"></script>
  9. <script type="text/javascript" src="{{ theme_asset('gt/gt.handle.js') }}"></script>
  10. @endpush
  11. @section('content')
  12. <div class="qs-top-nav x2 list_height">
  13. <div class="n-cell" onclick="javascript:location.href='{{route($sub_site.'mobile.register.person')}}'">手机注册<div class="b-line"></div></div>
  14. <div class="n-cell active">邮箱注册<div class="b-line"></div></div>
  15. <div class="clear"></div>
  16. </div>
  17. <div class="split-block"></div>
  18. <form id="regEmailForm" method="post" action="{{route($sub_site.'mobile.register.person')}}">
  19. {{csrf_field()}}
  20. <div class="loging-input-group">
  21. {{--<div class="group-list">
  22. <input id="username" name="username" type="text" class="l-input font14" placeholder="请输入用户名(必须是字母和数字)" autocomplete="off" value="">
  23. </div>
  24. <div class="group-list verfy">
  25. <input id="id_card" name="id_card" type="text" class="l-input font14" placeholder="请输入身份证号码" autocomplete="off">
  26. </div>--}}
  27. <div class="group-list email">
  28. <input id="email" name="email" type="text" class="l-input font14" placeholder="请输入常用邮箱" autocomplete="off" value = "">
  29. </div>
  30. <div class="group-list pwd">
  31. <input id="password" name="password" type="password" class="l-input font14" placeholder="请输入账户密码" autocomplete="off">
  32. </div>
  33. <div class="group-list pwd">
  34. <input id="password_confirmation" name="password_confirmation" type="password" class="l-input font14" placeholder="请确认账户密码" autocomplete="off">
  35. </div>
  36. </div>
  37. <div class="l-tool-bar list_height">
  38. <div class="read-agreement">
  39. <div class="for-checkbox active" id="for-checkbox">我已阅读并同意
  40. </div>
  41. </div>
  42. <div class="agreement link_gray6"><a href="#userAgreenment" id="reg_agreement">《用户服务协议》</a></div>
  43. <div class="clear"></div>
  44. </div>
  45. <div class="split-block"></div>
  46. <div class="btn-spacing btn-spacing-nmb"><a id="btnRegPersonal" href="javascript:;" class="qs-btn qs-btn-blue font18">注册个人会员</a></div>
  47. <input type="hidden" name="reg_type" value="2" />
  48. <input type="hidden" name="utype" value="2" />
  49. <input type="hidden" name="reg_source" value="2" />
  50. <input type="hidden" name="agreement" value="1" />
  51. </form>
  52. <div class="r-link-box qs-center link_blue"><a href="{{route($sub_site.'mobile.login')}}">已有账号,立即登录</a></div>
  53. <input type="hidden" id="J_config_varify_reg" value="1"/>
  54. <!--用户服务协议-->
  55. <script type="text/html" id="agreementTxt">
  56. <div class="headernavfixed">
  57. <div class="headernav font18"><div class="title">用户服务协议<div class="return js-back"></div><div class="rbtn"></div></div></div>
  58. </div>
  59. <div class="agreement-content">{!! str_replace(["\r\n","\n"], ["",""], config('aix.system.register_agreement.register_agreement.reg_agreement')) !!}</div>
  60. </script>
  61. @endsection
  62. @section('script')
  63. <script type="text/javascript" src="{{ theme_asset('app/js/regular.js') }}"></script>
  64. <script type="text/javascript" src="{{ theme_asset('mobile/js/popWin.js') }}"></script>
  65. <script>
  66. // 用户服务协议
  67. $('#for-checkbox').on('click', function() {
  68. $(this).toggleClass('active');
  69. if ($(this).hasClass('active')) {
  70. $('input[name=agreement]').val(1);
  71. } else {
  72. $('input[name=agreement]').val(0);
  73. }
  74. })
  75. var agreementTemp = $('#agreementTxt').html();
  76. $("#reg_agreement").on("click",function(){
  77. popWin.init({
  78. from:"right",
  79. html:agreementTemp,
  80. handle:function (a) {
  81. }
  82. })
  83. });
  84. var config_varify_reg = eval($('#J_config_varify_reg').val());
  85. // 配置极验
  86. if (config_varify_reg) {
  87. //邮箱注册
  88. var handlerRegEmail = function(captchaObj) {
  89. captchaObj.bindForm("#regEmailForm");
  90. captchaObj.onSuccess(function() {
  91. regPerByEmailHandler();
  92. });
  93. captchaObj.onError(function() {
  94. });
  95. $('#btnRegPersonal').on('click', function () {
  96. // var usernameValue = $.trim($('input[name=username]').val());
  97. // var id_cardValue = $.trim($('input[name=id_card]').val());
  98. var emailValue = $.trim($('input[name=email]').val());
  99. var emailpasswordValue = $.trim($('input[name=password]').val());
  100. var emailpasswordVerifyValue = $.trim($('input[name=password_confirmation]').val());
  101. var agreementValue = $('input[name=agreement]').val();
  102. /*if (usernameValue == '') {
  103. qsToast({type:2,context: '请输入用户名'});
  104. return false;
  105. }
  106. if (!inputRegValiUsername(usernameValue)) {
  107. qsToast({type:2,context: '用户名必须是字母开头,包含6位以上数字和字母'});
  108. return false;
  109. }
  110. if(!remoteValid('username',usernameValue)){
  111. qsToast({type:2,context: '该用户名已被注册'});
  112. return false;
  113. }
  114. if (id_cardValue == '') {
  115. qsToast({type:2,context: '请输入身份证号码'});
  116. return false;
  117. }
  118. if(!IsCardVali('id_card',id_cardValue)) {
  119. qsToast({type:2,context: '身份证格式错误'});
  120. return false;
  121. }
  122. if(!IsCard('id_card',id_cardValue)) {
  123. qsToast({type:2,context: '该身份证已被注册'});
  124. return false;
  125. }*/
  126. if (emailValue == '') {
  127. qsToast({type:2,context: '请输入常用邮箱'});
  128. return false;
  129. }
  130. if(!inputRegValiEmail(emailValue)){
  131. qsToast({type:2,context: '邮箱格式错误'});
  132. return false;
  133. }
  134. if(!remoteValid('email',emailValue)){
  135. qsToast({type:2,context: '该邮箱已被注册'});
  136. return false;
  137. }
  138. if (emailpasswordValue == '') {
  139. qsToast({type:2,context: '请输入密码'});
  140. return false;
  141. }
  142. if(!inputRegValiPassword(emailpasswordValue)){
  143. qsToast({type:2,context: '密码长度要求为6-16个字符'});
  144. return false;
  145. }
  146. if (emailpasswordVerifyValue == '') {
  147. qsToast({type:2,context: '请确认账户密码'});
  148. return false;
  149. }
  150. if(!inputRegValiPassword(emailpasswordVerifyValue)){
  151. qsToast({type:2,context: '密码长度要求为6-16个字符'});
  152. return false;
  153. }
  154. if(!inputRegValiPasswordRepeat(emailpasswordValue,emailpasswordVerifyValue)){
  155. qsToast({type:2,context: '两次输入的密码不一致'});
  156. return false;
  157. }
  158. if (agreementValue !=1) {
  159. qsToast({type:2,context: '请接受用户服务协议'});
  160. return false;
  161. }
  162. captchaObj.verify();
  163. });
  164. };
  165. gt_init(handlerRegEmail);
  166. }
  167. $('input[name=username]').change(function () {
  168. var usernameValue = $(this).val();
  169. if(!remoteValid('username',usernameValue)){
  170. qsToast({type:2,context: '该用户名已被注册'});
  171. return false;
  172. }
  173. })
  174. $('input[name=id_card]').change(function () {
  175. var currentValue = $(this).val();
  176. if(!IsCardVali('id_card',currentValue)) {
  177. qsToast({type:2,context: '身份证格式错误'});
  178. return false;
  179. }
  180. if(!IsCard('id_card',currentValue)) {
  181. qsToast({type:2,context: '该身份证已被注册'});
  182. return false;
  183. }
  184. });
  185. $('input[name=email]').change(function () {
  186. var emailValue = $(this).val();
  187. if(!remoteValid('email',emailValue)){
  188. qsToast({type:2,context: '该邮箱已被注册'});
  189. return false;
  190. }
  191. })
  192. // 个人邮箱注册处理程序
  193. function regPerByEmailHandler() {
  194. $('#btnRegPersonal').text('注册中...').addClass('btn_disabled').prop('disabled', !0);
  195. $.ajax({
  196. url: "{{route($sub_site.'mobile.register.person')}}",
  197. type: 'POST',
  198. dataType: 'json',
  199. data: $('#regEmailForm').serialize(),
  200. success: function (data) {
  201. qsToast({type:2,context: "注册成功,正在为你跳转.."});
  202. setTimeout(function () {
  203. window.location.href = data.data.url;
  204. },1000)
  205. },
  206. error:function(errorData) {
  207. $('#btnRegPersonal').text('注册个人会员').removeClass('btn_disabled').prop('disabled', 0);
  208. var response=$.parseJSON(errorData.response);
  209. if (errorData.status==422) {//验证错误
  210. $.each(response.errors,function (key,val) {
  211. qsToast({type:2,context: val[0]});
  212. return false;
  213. });
  214. }
  215. else if(errorData.status==400) {//业务错误
  216. qsToast({type:2,context: response.message});
  217. }
  218. }
  219. });
  220. }
  221. /**
  222. * 验证用户名等是否重复
  223. * @param validType 验证类型
  224. * @param validValue 值
  225. * @returns {boolean|*}
  226. */
  227. function remoteValid(validType, validValue){
  228. var result = false;
  229. $.ajax({
  230. url: "{{route('register.check', ['utype'=>2])}}",
  231. cache: false,
  232. async: false,
  233. type: 'post',
  234. dataType: 'json',
  235. data: { type: validType, param: validValue },
  236. success: function(json) {
  237. result= true;
  238. }
  239. });
  240. return result;
  241. }
  242. /**
  243. * 验证密码长度
  244. * @param value 密码
  245. * @returns {boolean}
  246. */
  247. function inputRegValiPassword(value){
  248. achoice = true;
  249. if(value.length>16 || value.length<6){
  250. achoice = false;
  251. }
  252. return achoice;
  253. }
  254. /**
  255. * 验证密码两次输入是否一致
  256. * @param password 第一次密码
  257. * @param passwordRepeat 第二次密码
  258. * @returns {boolean}
  259. */
  260. function inputRegValiPasswordRepeat(password,passwordRepeat){
  261. achoice = true;
  262. if(password!=passwordRepeat){
  263. achoice = false;
  264. }
  265. return achoice;
  266. }
  267. /**
  268. * 验证用户名
  269. * @param value 用户名
  270. * @returns {boolean}
  271. */
  272. function inputRegValiUsername(value){
  273. var achoice = true;
  274. if (!regularUsername.test(value)) {
  275. achoice = false;
  276. }
  277. return achoice;
  278. }
  279. /**
  280. * 验证邮箱
  281. * @param value 邮箱
  282. * @returns {boolean}
  283. */
  284. function inputRegValiEmail(value){
  285. var achoice = true;
  286. if (!regularEmail.test(value)) {
  287. achoice = false;
  288. }
  289. return achoice;
  290. }
  291. function IsCard(validType, validValue) {
  292. var result = false;
  293. $.ajax({
  294. url: "{{route('register.check', ['utype'=>2])}}",
  295. cache: false,
  296. async: false,
  297. type: 'post',
  298. dataType: 'json',
  299. data: { type: validType, param: validValue},
  300. success: function(json) {
  301. result= true;
  302. }
  303. });
  304. return result;
  305. }
  306. function IsCardVali(validType, validValue){
  307. var result = false;
  308. $.ajax({
  309. url: "{{route('register.check', ['utype'=>2])}}",
  310. cache: false,
  311. async: false,
  312. type: 'post',
  313. dataType: 'json',
  314. data: { type: validType, param: validValue,vail:1 },
  315. success: function(json) {
  316. result= true;
  317. }
  318. });
  319. return result;
  320. }
  321. </script>
  322. @endsection