jquery.validate.regcompany.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397
  1. (function($) {
  2. 'use strict';
  3. // 自定义验证方法,验证是否被注册
  4. $.validator.addMethod('IsRegistered', function(value, element) {
  5. var result = false, eletype = element.name;
  6. if (eletype == 'company_mobile') {
  7. eletype = 'mobile';
  8. }
  9. $.ajax({
  10. url: company_check_url,
  11. cache: false,
  12. async: false,
  13. type: 'post',
  14. dataType: 'json',
  15. data: { type: eletype, param: value },
  16. success: function(json) {
  17. result = true;
  18. }
  19. });
  20. return result;
  21. }, '已被注册');
  22. // 自定义验证方法,验证区号不为空。
  23. $.validator.addMethod("lineMobileA", function(value, element, param) {
  24. var achoice = true;
  25. var telphoneValue = $.trim($('#company_mobile').val());
  26. var landlinefirstValue = $.trim($("#landline_tel_first").val());
  27. if(telphoneValue==''){
  28. if(landlinefirstValue==''){
  29. achoice = false;
  30. }
  31. }
  32. return achoice;
  33. }, '请填写区号');
  34. // 自定义验证方法,验证区号
  35. $.validator.addMethod("inputRegValiZone", function(value, element, param) {
  36. if (this.optional(element))
  37. return "dependency-mismatch";
  38. var reg = param;
  39. if (typeof param == 'string') {
  40. reg = new RegExp(param);
  41. }
  42. return reg.test(value);
  43. }, '区号格式不正确');
  44. // 自定义验证方法,固话手机二选一
  45. $.validator.addMethod("lineMobileAchoice", function(value, element, param) {
  46. // var regularMobile = /^(13[0-9]|14[5-9]|15[0-3,5-9]|16[6]|17[0-8]|18[0-9]|19[89])\d{8}$/;
  47. var achoice = true;
  48. var telphoneValue = $.trim($('#company_mobile').val());
  49. var landlinefirstValue = $.trim($("#landline_tel_first").val());
  50. var landlinenextValue = $.trim($("#landline_tel_next").val());
  51. if (telphoneValue == '' && (landlinenextValue == '')) {
  52. achoice = false;
  53. }
  54. if (telphoneValue != "" && !regularMobile.test(telphoneValue) && (landlinenextValue == '')) {
  55. achoice = false;
  56. }
  57. return achoice;
  58. }, '固定电话和手机号码请至少填写一项');
  59. // 手机号输入实时验证二选一
  60. $('input[name="company_mobile"]').on('keyup', function(event) {
  61. var telephoneValue = $(this).val();
  62. if (telephoneValue.length >= 11) {
  63. if (!$('#landline_tel_next').closest('.td1').next().find('.ok').length) {
  64. $('#landline_tel_next').closest('.td1').next().empty();
  65. }
  66. }
  67. });
  68. // 固定电话输入实时验证二选一
  69. $('input[name="landline_tel_next"]').on('keyup', function(event) {
  70. var telValue = $(this).val();
  71. if (telValue.length >= 6) {
  72. if (!$('#telephone').closest('.td1').next().find('.ok').length) {
  73. $('#telephone').closest('.td1').next().empty();
  74. }
  75. }
  76. });
  77. // 获取后台注册验证配置
  78. var config_varify_reg = eval($('#J_config_varify_reg').val());
  79. var verifyPhoto = false;
  80. // 注册企业处理程序
  81. function regCompanyHandler() {
  82. $('#btnRegister').val('注册中...').addClass('btn_disabled').prop('disabled', !0);
  83. $.ajax({
  84. url: company_register_url,
  85. type: 'POST',
  86. dataType: 'json',
  87. data: $('#registerForm').serialize(),
  88. success: function (data) {
  89. disapperTooltip("success","注册成功,正在为你跳转..");
  90. setTimeout(function () {
  91. window.location.href = data.data.url;
  92. },1000)
  93. },
  94. error:function(data){
  95. var error_obj=eval('(' + data.responseText + ')');
  96. if ($('input[name="agreement"]').is(':checked')) {
  97. $('#btnRegister').val('注册').removeClass('btn_disabled').prop('disabled', 0);
  98. }
  99. if (data.status==422) {//验证错误
  100. $.each(error_obj.errors,function (key,val) {
  101. disapperTooltip("remind", val[0]);
  102. });
  103. }
  104. else if(data.status==400) {//业务错误
  105. disapperTooltip("remind",error_obj.message);
  106. }
  107. }
  108. });
  109. }
  110. // 图片验证码
  111. // function verifyPhotoDialog() {
  112. // var verifyCodeDialog = $(this).dialog({
  113. // title: '请输入下图中的文字或字母',
  114. // content: [
  115. // '<div class="dia-captcha-item">',
  116. // '<img src="' + qscms.root + '?m=Home&c=captcha&a=captcha&t=' + (new Date()).getTime() + '" class="dia-captcha-img">',
  117. // '<input type="text" name="captcha-solution" class="dia-captcha-solution" maxlength="10">',
  118. // '</div>'
  119. // ].join(''),
  120. // btnOne: true,
  121. // loadFun: function() {
  122. // $('.dia-captcha-img').die().live('click', function() {
  123. // $(this).attr('src', qscms.root + '?m=Home&c=captcha&a=captcha&t=' + (new Date()).getTime());
  124. // })
  125. // },
  126. // yes: function() {
  127. // var currentPhotoVal = $.trim($('.dia-captcha-solution').val());
  128. // if (currentPhotoVal.length) {
  129. // $.ajax({
  130. // url: qscms.root + '?m=Home&c=captcha&a=captchaCode',
  131. // cache: false,
  132. // async: false,
  133. // type: 'post',
  134. // dataType: 'json',
  135. // data: { postcaptcha: currentPhotoVal },
  136. // success: function(result) {
  137. // if (result.status) {
  138. // verifyCodeDialog.hide();
  139. // regCompanyHandler();
  140. // } else {
  141. // disapperTooltip("remind", '验证码输入错误');
  142. // }
  143. // }
  144. // });
  145. // } else {
  146. // $('.dia-captcha-solution').focus();
  147. // disapperTooltip("remind", '请输入文字或字母');
  148. // }
  149. // }
  150. // })
  151. // verifyCodeDialog.setCloseDialog(false);
  152. // }
  153. // 企业注册验证程序
  154. $('#registerForm').validate({
  155. submitHandler: function(form) {
  156. if (!$('input[name="agreement"]').is(':checked')) {
  157. disapperTooltip("remind", '请同意注册协议');
  158. return false;
  159. }
  160. var landlinefirstValue = $.trim($("#landline_tel_first").val());
  161. var landlinenextValue = $.trim($("#landline_tel_next").val());
  162. var landlinelastValue = $.trim($("#landline_tel_last").val());
  163. var landline_tel_num ='';
  164. if (landlinefirstValue != '' && landlinenextValue != '') {
  165. landline_tel_num = landlinefirstValue +'-'+landlinenextValue;
  166. }
  167. if (landlinelastValue!='' && landline_tel_num!='') {
  168. landline_tel_num += '-' + landlinelastValue;
  169. }
  170. $('#landline_tel').val(landline_tel_num);
  171. // $('#verifyRegCompany').click();
  172. regCompanyHandler();
  173. // if (config_varify_reg) {// 开启注册验证
  174. // if (verifyPhoto) {// 图形验证码
  175. // verifyPhotoDialog();
  176. // } else {// 极验
  177. // $('#verifyRegCompany').click();
  178. // }
  179. // } else {// 未开启注册验证
  180. // regCompanyHandler();
  181. // }
  182. },
  183. rules: {
  184. companyname: {
  185. required: true,
  186. rangelength: [2, 50],
  187. IsRegistered: true
  188. },
  189. contact: {
  190. required: true,
  191. rangelength: [1, 10]
  192. },
  193. landline_tel_first: {
  194. inputRegValiZone: '^[0-9]{3}[0-9]?$',
  195. },
  196. landline_tel_next: {
  197. match: '^[0-9]{6,11}$',
  198. lineMobileAchoice: true,
  199. lineMobileA:true,
  200. },
  201. landline_tel_last: {
  202. number: true,
  203. rangelength: [1, 4],
  204. },
  205. company_mobile: {
  206. match: regularMobile,
  207. lineMobileAchoice: true,
  208. IsRegistered:true
  209. },
  210. username: {
  211. required: true,
  212. match: regularUsername,
  213. IsRegistered: true,
  214. //eIsRegistered:true
  215. },
  216. email: {
  217. required: true,
  218. email: true,
  219. IsRegistered: true,
  220. //eIsRegistered:true
  221. },
  222. company_password: {
  223. required: true,
  224. rangelength: [6, 16]
  225. },
  226. company_password_confirmation: {
  227. required: true,
  228. rangelength: [6, 16],
  229. equalTo: "#company_password"
  230. }
  231. },
  232. messages: {
  233. companyname: {
  234. required: '<div class="ftxt">请输入企业名称</div><div class="fimg"></div>',
  235. rangelength: '<div class="ftxt">2-50个字组成</div><div class="fimg"></div>',
  236. IsRegistered: '<div class="ftxt">该企业名称已被注册</div><div class="fimg"></div>',
  237. //eIsRegistered: '<div class="ftxt">该企业名称已被注册</div><div class="fimg"></div>'
  238. },
  239. contact: {
  240. required: '<div class="ftxt">请输入企业联系人</div><div class="fimg"></div>',
  241. rangelength: '<div class="ftxt">1-10个字组成</div><div class="fimg"></div>'
  242. },
  243. landline_tel_first: {
  244. inputRegValiZone: '<div class="ftxt">请填写正确的区号</div><div class="fimg"></div>',
  245. },
  246. landline_tel_next: {
  247. match: '<div class="ftxt">请输入6-11位的数字</div><div class="fimg"></div>',
  248. lineMobileAchoice: '<div class="ftxt">固定电话和手机号码至少填写一项</div><div class="fimg"></div>',
  249. lineMobileA:'<div class="ftxt">请填写区号</div><div class="fimg"></div>',
  250. },
  251. landline_tel_last: {
  252. number: '<div class="ftxt">分机号码为数字</div><div class="fimg"></div>',
  253. rangelength: '<div class="ftxt">1-4位数字组成</div><div class="fimg"></div>',
  254. },
  255. company_mobile: {
  256. match: '<div class="ftxt">手机号格式不正确</div><div class="fimg"></div>',
  257. lineMobileAchoice: '<div class="ftxt">固定电话和手机号码请至少填写一项</div><div class="fimg"></div>',
  258. IsRegistered : '<div class="ftxt">手机号已被注册</div><div class="fimg"></div>',
  259. //eIsRegistered: '<div class="ftxt">手机号已被注册</div><div class="fimg"></div>'
  260. },
  261. username: {
  262. required: '<div class="ftxt">请输入用户名</div><div class="fimg"></div>',
  263. match: '<div class="ftxt">字母开头,长度为6~16个数字或字母</div><div class="fimg"></div>',
  264. IsRegistered: '<div class="ftxt">用户名已被注册</div><div class="fimg"></div>',
  265. //eIsRegistered: '<div class="ftxt">用户名已被注册</div><div class="fimg"></div>'
  266. },
  267. email: {
  268. required: '<div class="ftxt">请输入邮箱</div><div class="fimg"></div>',
  269. email: '<div class="ftxt">邮箱格式不正确</div><div class="fimg"></div>',
  270. IsRegistered: '<div class="ftxt">该邮箱地址已被注册,请尝试登录</div><div class="fimg"></div>',
  271. //eIsRegistered: '<div class="ftxt">该邮箱地址已被注册,请尝试登录</div><div class="fimg"></div>'
  272. },
  273. company_password: {
  274. required: '<div class="ftxt">请输入密码</div><div class="fimg"></div>',
  275. rangelength: '<div class="ftxt">密码长度要求为6-16个字符</div><div class="fimg"></div>'
  276. },
  277. company_password_confirmation: {
  278. required: '<div class="ftxt">请输入确认密码</div><div class="fimg"></div>',
  279. rangelength: '<div class="ftxt">密码长度要求为6-16个字符</div><div class="fimg"></div>',
  280. equalTo: '<div class="ftxt">两次输入的密码不一致</div><div class="fimg"></div>'
  281. }
  282. },
  283. errorClasses: {
  284. companyname: {
  285. required: 'tip err',
  286. rangelength: 'tip err',
  287. IsRegistered: 'tip err'
  288. },
  289. contact: {
  290. required: 'tip err',
  291. rangelength: 'tip err'
  292. },
  293. landline_tel_first: {
  294. inputRegValiZone: 'tip err',
  295. },
  296. landline_tel_next: {
  297. match: 'tip err',
  298. lineMobileAchoice: 'tip err',
  299. lineMobileA: 'tip err'
  300. },
  301. landline_tel_last: {
  302. number: 'tip err',
  303. rangelength: 'tip err',
  304. },
  305. company_mobile: {
  306. match: 'tip err',
  307. lineMobileAchoice: 'tip err',
  308. IsRegistered: 'tip err',
  309. //eIsRegistered: 'tip err',
  310. //IsRegisteredT: 'tip err'
  311. },
  312. username: {
  313. required: 'tip err',
  314. match: 'tip err',
  315. IsRegistered: 'tip err',
  316. // eIsRegistered: 'tip err'
  317. },
  318. email: {
  319. required: 'tip err',
  320. email: 'tip err',
  321. IsRegistered: 'tip err',
  322. //eIsRegistered: 'tip err'
  323. },
  324. company_password: {
  325. required: 'tip err',
  326. rangelength: 'tip err'
  327. },
  328. company_password_confirmation: {
  329. required: 'tip err',
  330. rangelength: 'tip err',
  331. equalTo: 'tip err'
  332. }
  333. },
  334. tips: {
  335. companyname: '<div class="ftxt">名称与企业营业执照保持一致</div><div class="fimg"></div>',
  336. contact: '<div class="ftxt">请填写全名</div><div class="fimg"></div>',
  337. company_mobile: '<div class="ftxt">手机号可用于登录网站和找回密码</div><div class="fimg"></div>',
  338. username: '<div class="ftxt">字母开头,长度为6~16个数字或字母</div><div class="fimg"></div>',
  339. email: '<div class="ftxt">用邮箱用于接收简历及系统通知</div><div class="fimg"></div>',
  340. company_password: '<div class="ftxt">密码由6-16个数字、字母和符号组成</div><div class="fimg"></div>',
  341. company_password_confirmation: '<div class="ftxt">请再次输入密码</div><div class="fimg"></div>'
  342. },
  343. tipClasses: {
  344. companyname: 'tip',
  345. contact: 'tip',
  346. company_mobile: 'tip',
  347. username: 'tip',
  348. email: 'tip',
  349. company_password: 'tip',
  350. company_password_confirmation: 'tip'
  351. },
  352. groups: {
  353. phoneNum: 'landline_tel_first landline_tel_next landline_tel_last'
  354. },
  355. errorElement: 'div',
  356. errorPlacement: function(error, element) {
  357. if (element.attr('name') == 'landline_tel_last' || element.attr('name') == 'landline_tel_next' || element.attr('name') == 'landline_tel_first') {
  358. element.closest('.J_validate_group').find('.J_showtip_box').append(error);
  359. } else {
  360. element.closest('.J_validate_group').find('.J_showtip_box').append(error);
  361. }
  362. },
  363. success: function(label) {
  364. label.append('<div class="ok"></div>');
  365. }
  366. });
  367. // 如果后台开启注册验证就配置极验
  368. /*var handler = function(captchaObj) {
  369. captchaObj.bindForm("#registerForm");
  370. captchaObj.onSuccess(function() {
  371. regCompanyHandler();
  372. });
  373. captchaObj.onError(function() {
  374. });
  375. $('#verifyRegCompany').on('click', function () {
  376. captchaObj.verify();
  377. });
  378. };
  379. gt_init(handler);*/
  380. })(jQuery);