register_person_email.blade.php 15 KB

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