jquery.validate.regpersonal.js 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717
  1. /* ============================================================
  2. * jquery.validate.regpersonal.js 个人注册验证
  3. * ============================================================ */
  4. (function($) {
  5. 'use strict';
  6. function IsRegistered(value, element) {
  7. var result = false, eletype = element.name;
  8. $.ajax({
  9. url: person_check_url,
  10. cache: false,
  11. async: false,
  12. type: 'post',
  13. dataType: 'json',
  14. data: { type: eletype, param: value },
  15. success: function(json) {
  16. result = true;
  17. }
  18. });
  19. return result;
  20. }
  21. // 自定义验证方法,验证是否被注册
  22. $.validator.addMethod('IsRegistered', IsRegistered, '已被注册');
  23. function IsCard(value, element) {
  24. var result = false, eletype = element.name;
  25. $.ajax({
  26. url: person_check_url,
  27. cache: false,
  28. async: false,
  29. type: 'post',
  30. dataType: 'json',
  31. data: { type: eletype, param: value },
  32. success: function(json) {
  33. result = true;
  34. }
  35. });
  36. return result;
  37. }
  38. // 自定义验证方法,验证是否被注册
  39. $.validator.addMethod('IsCard', IsCard, '身份证已被使用');
  40. function IsCardVali(value, element) {
  41. var result = false, eletype = element.name;
  42. $.ajax({
  43. url: person_check_url,
  44. cache: false,
  45. async: false,
  46. type: 'post',
  47. dataType: 'json',
  48. data: { type: eletype, param: value ,vail:1},
  49. success: function(json) {
  50. result = true;
  51. }
  52. });
  53. return result;
  54. }
  55. // 自定义验证方法,验证是否被注册
  56. $.validator.addMethod('IsCardVali', IsCardVali, '身份证格式错误');
  57. // 若检测到手机号存在则提示解绑原账号or更换新手机
  58. $('input[name=mobile]').blur(function () {
  59. var currentValue = $(this).val();
  60. if (currentValue.length >= 11) {
  61. if(regularMobile.test(currentValue) && !IsRegistered(currentValue, this)) {
  62. $('.had-remind').show();
  63. $('#btnMoilbPhoneRegister').attr('disabled','disabled').addClass("btn_disabled");
  64. $('#unbind_mobile').val(1);
  65. } else {
  66. $('.had-remind').hide();
  67. $('#btnMoilbPhoneRegister').attr('disabled',false).removeClass("btn_disabled");
  68. $('#unbind_mobile').val(0);
  69. }
  70. } else {
  71. $('.had-remind').hide();
  72. $('#unbind_mobile').val(0);
  73. }
  74. });
  75. $('#J_change_mobile').live('click', function () {
  76. window.location.reload();
  77. });
  78. $('#J_login').live('click', function () {
  79. window.location.href = login_url;
  80. });
  81. // 获取后台注册验证配置
  82. var config_varify_reg = eval($('#J_config_varify_reg').val());
  83. var verifyPhoto = false;
  84. // 图片验证码发送短信
  85. function verifyPhotoDialogSms() {
  86. var verifyCodeDialog = $(this).dialog({
  87. title: '请输入下图中的文字或字母',
  88. content: [
  89. '<div class="dia-captcha-item">',
  90. '<img src="' + qscms.root + '?m=Home&c=captcha&a=captcha&t=' + (new Date()).getTime() + '" class="dia-captcha-img">',
  91. '<input type="text" name="captcha-solution" class="dia-captcha-solution" maxlength="10">',
  92. '</div>'
  93. ].join(''),
  94. btnOne: true,
  95. loadFun: function() {
  96. $('.dia-captcha-img').die().live('click', function() {
  97. $(this).attr('src', qscms.root + '?m=Home&c=captcha&a=captcha&t=' + (new Date()).getTime());
  98. })
  99. },
  100. yes: function() {
  101. var currentPhotoVal = $.trim($('.dia-captcha-solution').val());
  102. if (currentPhotoVal.length) {
  103. $.ajax({
  104. url: qscms.root + '?m=Home&c=captcha&a=captchaCode',
  105. cache: false,
  106. async: false,
  107. type: 'post',
  108. dataType: 'json',
  109. data: { postcaptcha: currentPhotoVal },
  110. success: function(result) {
  111. if (result.status) {
  112. verifyCodeDialog.hide();
  113. toSetSms();
  114. } else {
  115. disapperTooltip("remind", '验证码输入错误');
  116. }
  117. }
  118. });
  119. } else {
  120. $('.dia-captcha-solution').focus();
  121. disapperTooltip("remind", '请输入文字或字母');
  122. }
  123. }
  124. })
  125. verifyCodeDialog.setCloseDialog(false);
  126. }
  127. // 图片验证码手机注册
  128. function verifyPhotoDialogMobile() {
  129. var verifyCodeDialog = $(this).dialog({
  130. title: '请输入下图中的文字或字母',
  131. content: [
  132. '<div class="dia-captcha-item">',
  133. '<img src="' + qscms.root + '?m=Home&c=captcha&a=captcha&t=' + (new Date()).getTime() + '" class="dia-captcha-img">',
  134. '<input type="text" name="captcha-solution" class="dia-captcha-solution" maxlength="10">',
  135. '</div>'
  136. ].join(''),
  137. btnOne: true,
  138. loadFun: function() {
  139. $('.dia-captcha-img').die().live('click', function() {
  140. $(this).attr('src', qscms.root + '?m=Home&c=captcha&a=captcha&t=' + (new Date()).getTime());
  141. })
  142. },
  143. yes: function() {
  144. var currentPhotoVal = $.trim($('.dia-captcha-solution').val());
  145. if (currentPhotoVal.length) {
  146. $.ajax({
  147. url: qscms.root + '?m=Home&c=captcha&a=captchaCode',
  148. cache: false,
  149. async: false,
  150. type: 'post',
  151. dataType: 'json',
  152. data: { postcaptcha: currentPhotoVal },
  153. success: function(result) {
  154. if (result.status) {
  155. verifyCodeDialog.hide();
  156. regPerByMobileHandler();
  157. } else {
  158. disapperTooltip("remind", '验证码输入错误');
  159. }
  160. }
  161. });
  162. } else {
  163. $('.dia-captcha-solution').focus();
  164. disapperTooltip("remind", '请输入文字或字母');
  165. }
  166. }
  167. })
  168. verifyCodeDialog.setCloseDialog(false);
  169. }
  170. // 图片验证码邮箱注册
  171. function verifyPhotoDialogEmail() {
  172. var verifyCodeDialog = $(this).dialog({
  173. title: '请输入下图中的文字或字母',
  174. content: [
  175. '<div class="dia-captcha-item">',
  176. '<img src="' + qscms.root + '?m=Home&c=captcha&a=captcha&t=' + (new Date()).getTime() + '" class="dia-captcha-img">',
  177. '<input type="text" name="captcha-solution" class="dia-captcha-solution" maxlength="10">',
  178. '</div>'
  179. ].join(''),
  180. btnOne: true,
  181. loadFun: function() {
  182. $('.dia-captcha-img').die().live('click', function() {
  183. $(this).attr('src', qscms.root + '?m=Home&c=captcha&a=captcha&t=' + (new Date()).getTime());
  184. })
  185. },
  186. yes: function() {
  187. var currentPhotoVal = $.trim($('.dia-captcha-solution').val());
  188. if (currentPhotoVal.length) {
  189. $.ajax({
  190. url: qscms.root + '?m=Home&c=captcha&a=captchaCode',
  191. cache: false,
  192. async: false,
  193. type: 'post',
  194. dataType: 'json',
  195. data: { postcaptcha: currentPhotoVal },
  196. success: function(result) {
  197. if (result.status) {
  198. verifyCodeDialog.hide();
  199. regPerByEmailHandler();
  200. } else {
  201. disapperTooltip("remind", '验证码输入错误');
  202. }
  203. }
  204. });
  205. } else {
  206. $('.dia-captcha-solution').focus();
  207. disapperTooltip("remind", '请输入文字或字母');
  208. }
  209. }
  210. })
  211. verifyCodeDialog.setCloseDialog(false);
  212. }
  213. // 点击获取验证码先判断是否输入了手机号
  214. $('#J_getverificode').click(function() {
  215. var mobileValue = $.trim($('#mobile').val());
  216. var unbindMobile = $.trim($('#unbind_mobile').val());
  217. // 获取后台发送验证码配置
  218. var captcha_open = eval($('#J_captcha_open').val());
  219. if (mobileValue == '') {
  220. disapperTooltip("remind", "请输入手机号码");
  221. $('#mobile').focus();
  222. return false;
  223. };
  224. if (mobileValue != "" && !regularMobile.test(mobileValue)) {
  225. disapperTooltip("remind", "请输入正确的手机号码");
  226. $('#mobile').focus();
  227. return false;
  228. }
  229. if(unbindMobile == '1'){
  230. disapperTooltip("remind", "该手机号已被注册");
  231. } else {
  232. if (captcha_open) {// 后台开启验证
  233. if (verifyPhoto) {// 图片验证码
  234. verifyPhotoDialogSms();
  235. } else {// 极验
  236. $("#btnCheck").click();
  237. }
  238. } else {// 后台未开启验证
  239. toSetSms();
  240. }
  241. }
  242. });
  243. // 个人手机注册验证程序
  244. $("#regMobileForm").validate({
  245. submitHandler: function(form) {
  246. if (!$('#regMobileForm input[name="agreement"]').is(':checked')) {
  247. disapperTooltip("remind", '请同意注册协议');
  248. return false;
  249. }
  250. if (config_varify_reg) {// 开启注册验证
  251. if (verifyPhoto) {// 图片验证码
  252. verifyPhotoDialogMobile();
  253. } else {// 极验
  254. $("#btnCheckMobile").click();
  255. }
  256. } else {// 未开启注册验证
  257. regPerByMobileHandler();
  258. }
  259. },
  260. rules: {
  261. /*id_card: {
  262. required: true,
  263. IsCardVali:true,
  264. IsCard: true,
  265. },*/
  266. mobile: {
  267. required: true,
  268. match: regularMobile,
  269. //IsRegistered: true
  270. },
  271. mobile_vcode: {
  272. required: true,
  273. match: /\d{6}$/
  274. },
  275. password: {
  276. required: true,
  277. rangelength: [6, 16]
  278. },
  279. password_confirmation: {
  280. required: true,
  281. rangelength: [6, 16],
  282. equalTo: "#password"
  283. }
  284. },
  285. messages: {
  286. /*id_card: {
  287. required: '<div class="ftxt">请输入身份证号码</div><div class="fimg"></div>',
  288. IsCardVali: '<div class="ftxt">身份证格式错误</div><div class="fimg"></div>',
  289. IsCard: '<div class="ftxt">该身份证已被注册</div><div class="fimg"></div>',
  290. },*/
  291. mobile: {
  292. required: '<div class="ftxt">请输入手机号码</div><div class="fimg"></div>',
  293. match: '<div class="ftxt">手机号格式不正确</div><div class="fimg"></div>',
  294. //IsRegistered: '<div class="ftxt">该手机号已被注册</div><div class="fimg"></div>'
  295. },
  296. mobile_vcode: {
  297. required: '<div class="ftxt">请输入验证码</div><div class="fimg"></div>',
  298. match: '<div class="ftxt">手机验证码为6位纯数字</div><div class="fimg"></div>'
  299. },
  300. password: {
  301. required: '<div class="ftxt">请输入密码</div><div class="fimg"></div>',
  302. rangelength: '<div class="ftxt">密码长度要求为6-16个字符</div><div class="fimg"></div>'
  303. },
  304. password_confirmation: {
  305. required: '<div class="ftxt">请输入确认密码</div><div class="fimg"></div>',
  306. rangelength: '<div class="ftxt">密码长度要求为6-16个字符</div><div class="fimg"></div>',
  307. equalTo: '<div class="ftxt">两次输入的密码不一致</div><div class="fimg"></div>'
  308. }
  309. },
  310. errorClasses: {
  311. /*id_card: {
  312. required: 'tip err',
  313. IsCardVali: 'tip err',
  314. IsCard: 'tip err',
  315. },*/
  316. mobile: {
  317. required: 'tip err',
  318. match: 'tip err',
  319. //IsRegistered: 'tip err'
  320. },
  321. mobile_vcode: {
  322. required: 'tip err',
  323. match: 'tip err'
  324. },
  325. password: {
  326. required: 'tip err',
  327. rangelength: 'tip err',
  328. match: 'tip err'
  329. },
  330. password_confirmation: {
  331. required: 'tip err',
  332. rangelength: 'tip err',
  333. equalTo: 'tip err'
  334. }
  335. },
  336. tips: {
  337. /*id_card: '<div class="ftxt">请输入正确的身份证号码</div><div class="fimg"></div>',*/
  338. mobile: '<div class="ftxt">手机号可用于登录网站和找回密码</div><div class="fimg"></div>',
  339. mobile_vcode: '<div class="ftxt">请输入手机验证码</div><div class="fimg"></div>',
  340. password: '<div class="ftxt">密码由6-16个数字、字母和符号组成</div><div class="fimg"></div>',
  341. password_confirmation: '<div class="ftxt">请再次输入密码</div><div class="fimg"></div>'
  342. },
  343. tipClasses: {
  344. IsCardVali: 'tip',
  345. /*id_card: 'tip',*/
  346. mobile: 'tip',
  347. mobile_vcode: 'tip',
  348. password: 'tip',
  349. password_confirmation: 'tip'
  350. },
  351. errorElement: 'div',
  352. errorPlacement: function(error, element) {
  353. if (element.attr('name') == 'mobile_vcode') {
  354. element.closest('.J_validate_group').find('.J_showtip_box').append(error);
  355. } else {
  356. element.closest('.J_validate_group').find('.J_showtip_box').append(error);
  357. }
  358. },
  359. success: function(label) {
  360. label.append('<div class="ok"></div>');
  361. }
  362. });
  363. // 个人邮箱注册验证程序
  364. $("#regEmailForm").validate({
  365. submitHandler: function(form) {
  366. if (!$('#regEmailForm input[name="agreement"]').is(':checked')) {
  367. disapperTooltip("remind", '请同意注册协议');
  368. return false;
  369. }
  370. if (config_varify_reg) {// 后台开启注册验证
  371. if (verifyPhoto) {// 图片验证码
  372. verifyPhotoDialogEmail();
  373. } else {// 极验
  374. $("#btnCheckEmail").click();
  375. }
  376. } else {// 后台未开启注册验证
  377. regPerByEmailHandler();
  378. }
  379. },
  380. rules: {
  381. username: {
  382. required: true,
  383. match: regularUsername,
  384. IsRegistered: true,
  385. },
  386. /*id_card: {
  387. required: true,
  388. IsCardVali:true,
  389. IsCard: true,
  390. },*/
  391. email: {
  392. required: true,
  393. email: true,
  394. IsRegistered: true,
  395. },
  396. password: {
  397. required: true,
  398. rangelength: [6, 20]
  399. },
  400. password_confirmation: {
  401. required: true,
  402. rangelength: [6, 20],
  403. equalTo: "#email_password"
  404. }
  405. },
  406. messages: {
  407. username: {
  408. required: '<div class="ftxt">请输入用户名</div><div class="fimg"></div>',
  409. match: '<div class="ftxt">字母开头,长度为6~16个数字或字母</div><div class="fimg"></div>',
  410. IsRegistered: '<div class="ftxt">该用户名已被注册</div><div class="fimg"></div>',
  411. },
  412. /*id_card: {
  413. required: '<div class="ftxt">请输入身份证号码</div><div class="fimg"></div>',
  414. IsCardVali: '<div class="ftxt">身份证格式错误</div><div class="fimg"></div>',
  415. IsCard: '<div class="ftxt">该身份证已被注册</div><div class="fimg"></div>',
  416. },*/
  417. email: {
  418. required: '<div class="ftxt">请输入邮箱</div><div class="fimg"></div>',
  419. email: '<div class="ftxt">邮箱格式不正确</div><div class="fimg"></div>',
  420. IsRegistered: '<div class="ftxt">该邮箱地址已被注册,请尝试登录</div><div class="fimg"></div>',
  421. },
  422. password: {
  423. required: '<div class="ftxt">请输入密码</div><div class="fimg"></div>',
  424. rangelength: '<div class="ftxt">密码长度要求为6-20个字符</div><div class="fimg"></div>'
  425. },
  426. password_confirmation: {
  427. required: '<div class="ftxt">请输入确认密码</div><div class="fimg"></div>',
  428. rangelength: '<div class="ftxt">密码长度要求为6-20个字符</div><div class="fimg"></div>',
  429. equalTo: '<div class="ftxt">两次输入的密码不一致</div><div class="fimg"></div>'
  430. }
  431. },
  432. errorClasses: {
  433. username: {
  434. required: 'tip err',
  435. match: 'tip err',
  436. IsRegistered: 'tip err',
  437. },
  438. /*id_card: {
  439. required: 'tip err',
  440. IsCardVali: 'tip err',
  441. IsCard: 'tip err',
  442. },*/
  443. email: {
  444. required: 'tip err',
  445. email: 'tip err',
  446. IsRegistered: 'tip err',
  447. },
  448. password: {
  449. required: 'tip err',
  450. rangelength: 'tip err'
  451. },
  452. password_confirmation: {
  453. required: 'tip err',
  454. rangelength: 'tip err',
  455. equalTo: 'tip err'
  456. }
  457. },
  458. tips: {
  459. /*id_card: '<div class="ftxt">请输入正确的身份证号码</div><div class="fimg"></div>',*/
  460. username: '<div class="ftxt">字母开头,长度为6~16个数字或字母</div><div class="fimg"></div>',
  461. email: '<div class="ftxt">邮箱用于接收简历及系统重要通知</div><div class="fimg"></div>',
  462. password: '<div class="ftxt">6-20位字符组成,区分大小写</div><div class="fimg"></div>',
  463. password_confirmation: '<div class="ftxt">请再次输入密码</div><div class="fimg"></div>'
  464. },
  465. tipClasses: {
  466. username: 'tip',
  467. IsCardVali: 'tip',
  468. /*id_card: 'tip',*/
  469. email: 'tip',
  470. password: 'tip',
  471. password_confirmation: 'tip'
  472. },
  473. errorElement: 'span',
  474. errorPlacement: function(error, element) {
  475. element.closest('.J_validate_group').find('.J_showtip_box').append(error);
  476. },
  477. success: function(label) {
  478. label.append('<div class="ok"></div>');
  479. }
  480. });
  481. var register = {
  482. initialize: function() {
  483. this.initControl();
  484. },
  485. initControl: function() {
  486. // 手机注册提交
  487. $('#btnMoilbPhoneRegister').die().live('click', function() {
  488. $(this).submitForm({
  489. beforeSubmit: $.proxy(frmMobilValid.form, frmMobilValid),
  490. success: function(data) {
  491. if (data.status) {
  492. window.location.href = data.data.url;
  493. } else {
  494. $('#btnMoilbPhoneRegister').val('注册').removeClass('btn_disabled').prop('disabled', 0);
  495. disapperTooltip("remind", data.msg);
  496. }
  497. },
  498. clearForm: false
  499. });
  500. if (frmMobilValid.valid()) {
  501. $('#btnMoilbPhoneRegister').val('注册中...').addClass('btn_disabled').prop('disabled', !0);
  502. }
  503. return false;
  504. });
  505. // 邮箱注册提交
  506. $('#btnEmailRegister').die().live('click', function() {
  507. $(this).submitForm({
  508. beforeSubmit: $.proxy(frmEmailValid.form, frmEmailValid),
  509. success: function(data) {
  510. if (data.status) {
  511. window.location.href = data.data.url;
  512. } else {
  513. $('#btnEmailRegister').val('注册').removeClass('btn_disabled').prop('disabled', 0);
  514. disapperTooltip("remind", data.msg);
  515. }
  516. },
  517. clearForm: false
  518. });
  519. if (frmEmailValid.valid()) {
  520. $('#btnEmailRegister').val('注册中...').addClass('btn_disabled').prop('disabled', !0);
  521. }
  522. return false;
  523. });
  524. }
  525. }
  526. // 发送手机验证码
  527. function toSetSms(geet_result) {
  528. function settime(countdown) {
  529. if (countdown == 0) {
  530. $('#J_getverificode').prop("disabled", 0);
  531. $('#J_getverificode').removeClass('btn_disabled hover');
  532. $('#J_getverificode').val('获取验证码');
  533. countdown = 180;
  534. return;
  535. } else {
  536. $('#J_getverificode').prop("disabled", !0);
  537. $('#J_getverificode').addClass('btn_disabled');
  538. $('#J_getverificode').val('重新发送' + countdown + '秒');
  539. countdown--;
  540. }
  541. setTimeout(function() {
  542. settime(countdown)
  543. },1000)
  544. }
  545. $('#J_getverificode').prop("disabled", !0);
  546. $('#J_getverificode').addClass('btn_disabled');
  547. $('#J_getverificode').val('发送中...');
  548. geet_result.mobile= $.trim($('#mobile').val());
  549. geet_result.type= "register";
  550. $.ajax({
  551. url: sms_url,
  552. type: 'POST',
  553. dataType: 'json',
  554. data: geet_result,
  555. success: function (data) {
  556. // console.log(data);
  557. setTimeout(function() {
  558. disapperTooltip("success", "验证码已发送,请注意查收");
  559. // 开始倒计时
  560. var countdowns = 180;
  561. settime(countdowns);
  562. },800)
  563. },
  564. error: function (data) {
  565. $('#J_getverificode').prop("disabled", 0);
  566. $('#J_getverificode').removeClass('btn_disabled hover');
  567. $('#J_getverificode').val('获取验证码');
  568. var error_obj=eval('(' + data.responseText + ')');
  569. if (data.status==422) {//验证错误
  570. $.each(error_obj.errors,function (key,val) {
  571. disapperTooltip("remind", val[0]);
  572. });
  573. } else if(data.status==400) {//业务错误
  574. disapperTooltip("remind",error_obj.message);
  575. }
  576. }
  577. });
  578. }
  579. // 个人手机注册处理程序
  580. function regPerByMobileHandler() {
  581. $('#btnMoilbPhoneRegister').val('注册中...').addClass('btn_disabled').prop('disabled', !0);
  582. $.ajax({
  583. url: person_register_url,
  584. type: 'POST',
  585. dataType: 'json',
  586. data: $('#regMobileForm').serialize(),
  587. success: function (data) {
  588. disapperTooltip("success","注册成功,正在为你跳转..");
  589. setTimeout(function () {
  590. window.location.href = data.data.url;
  591. },1000)
  592. },
  593. error:function(data) {
  594. console.log(data);
  595. var error_obj=eval('(' + data.responseText + ')');
  596. if ($('#regMobileForm input[name="agreement"]').is(':checked')) {
  597. $('#btnMoilbPhoneRegister').val('注册').removeClass('btn_disabled').prop('disabled', 0);
  598. }
  599. if (data.status == 422) {//验证错误
  600. $.each(error_obj.errors, function (key, val) {
  601. disapperTooltip("remind", val[0]);
  602. });
  603. }
  604. else if (data.status == 400) {//业务错误
  605. disapperTooltip("remind", error_obj.message);
  606. }
  607. }
  608. });
  609. }
  610. // 个人邮箱注册处理程序
  611. function regPerByEmailHandler() {
  612. $('#btnEmailRegister').val('注册中...').addClass('btn_disabled').prop('disabled', !0);
  613. $.ajax({
  614. url: person_register_url,
  615. type: 'POST',
  616. dataType: 'json',
  617. data: $('#regEmailForm').serialize(),
  618. success: function (data) {
  619. disapperTooltip("success","注册成功,正在为你跳转..");
  620. setTimeout(function () {
  621. window.location.href = data.data.url;
  622. },1000)
  623. },
  624. error:function(data) {
  625. console.log(data);
  626. var error_obj=eval('(' + data.responseText + ')');
  627. if ($('#regEmailForm input[name="agreement"]').is(':checked')) {
  628. $('#btnEmailRegister').val('注册').removeClass('btn_disabled').prop('disabled', 0);
  629. }
  630. if (data.status == 422) {//验证错误
  631. $.each(error_obj.errors, function (key, val) {
  632. disapperTooltip("remind", val[0]);
  633. });
  634. }
  635. else if (data.status == 400) {//业务错误
  636. disapperTooltip("remind", error_obj.message);
  637. }
  638. }
  639. });
  640. }
  641. // 配置极验
  642. if (config_varify_reg) {
  643. //手机注册
  644. var handlerRegMobile = function(captchaObj) {
  645. captchaObj.bindForm("#regMobileForm");
  646. captchaObj.onSuccess(function() {
  647. regPerByMobileHandler();
  648. });
  649. captchaObj.onError(function() {
  650. });
  651. $('#btnCheckMobile').on('click', function () {
  652. captchaObj.verify();
  653. });
  654. };
  655. //邮箱注册
  656. var handlerRegEmail = function(captchaObj) {
  657. captchaObj.bindForm("#regEmailForm");
  658. captchaObj.onSuccess(function() {
  659. regPerByEmailHandler();
  660. });
  661. captchaObj.onError(function() {
  662. });
  663. $('#btnCheckEmail').on('click', function () {
  664. captchaObj.verify();
  665. });
  666. };
  667. //发送短信
  668. var handler = function(captchaObj) {
  669. captchaObj.appendTo("#popup-captcha");
  670. captchaObj.onSuccess(function() {
  671. var result = captchaObj.getValidate();
  672. toSetSms(result);
  673. });
  674. captchaObj.onError(function() {
  675. });
  676. $('#btnCheck').on('click', function () {
  677. captchaObj.verify();
  678. });
  679. };
  680. gt_init(handlerRegMobile);
  681. gt_init(handlerRegEmail);
  682. gt_init(handler);
  683. };
  684. })(jQuery);