// 公共方法 $(function () { // 语言下拉 $('.he_hd_lan').hover(function(){ $(this).find('.he_hd_ls').addClass('on'); $(this).find('.he_hd_lxa').stop().slideDown(); },function(){ $(this).find('.he_hd_ls').removeClass('on'); $(this).find('.he_hd_lxa').stop().slideUp(); }); $('.input').on('focus', function() { $(this).removeClass('error'); }); $('.textarea').on('focus', function() { $(this).removeClass('error'); }); // 密码确认密码获取焦点时同时取消 失败状态 $('#password, #confirmPassword').on('focus', function() { $('#password, #confirmPassword').removeClass('error'); }); // 输入邮箱后 获取邮箱验证码可点击 $('#email').on('blur', function () { if(($('#emailCode').text() === '获取验证码' || $('#emailCode').text() === '重新发送') && $(this).val().trim() && !!validEmail($(this).val().trim())) { $('#emailCode').addClass('on'); }else { $('#emailCode').removeClass('on'); } }); // 密码提示 $('.pad-tag-icon, .formMain_icon').hover(function () { $('.pad-tag-text').toggle(); }); $('.pc-tag-icon').hover(function () { $('.pc-tag-text').toggle(); }); // 密码框显示隐藏 $('.eye-icon').click(function () { let type = $(this).attr('data-type'); if($("#"+type).attr("type")==="text"){ $("#"+type).attr("type","password"); $(this).attr("src", '../image/eye_n.svg'); } else{ $("#"+type).attr("type","text"); $(this).attr("src", '../image/eye_o.svg'); } }); // 协议选择 $('#checkbox-agree').click(function () { eleChangeClass($(this), 'on'); }); }) // 验证手机号 function validphones(phones) { const reg = /^1(3|4|5|6|7|8|9)\d{9}$/ return reg.test(String(phones).toLowerCase()) } // 验证邮箱 function validEmail(email) { const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+(com|net|cn)))$/ return reg.test(String(email).toLowerCase()) } //验证密码 function validPad(val) { const reg = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\W_]).{8,16}$/; return reg.test(val); } // 元素添加class function eleChangeClass(el, className) { $(el).toggleClass(className); } // 表单非空验证 /* * @param {Object} formData * @return { * elId: 元素id * message: 错误文案 * } * */ function validForm(formData) { let message = ""; if((formData.id === 'email' || formData.id === 'formEmail') && formData.value && !validEmail(formData.value)) { message = !message && formData.value ? formData.label+'格式不正确!' : message; } else { message = !message && !formData.value ? '请输入'+formData.label+'!' : message; } if(message) return { elId: formData.id, message } if(!message) return true; } // 验证职业/行业 function yzOccupation(formData, data) { try { let status = false; $.each(data, function(index, optionData) { if(formData === optionData.value) { status = true; } }); return status; } catch (err) { return false; } } // 检查是否填写必填 function yzIsRequired(ele, btnEle) { var allFilled = true; // 假设所有字段都已填写 $(ele).each(function() { // 对于输入框,检查值是否为空 if ($(this).is('input') && $(this).val().trim() === '') { allFilled = false; return false; // 跳出循环 } // 对于选择框,检查是否选择了非空的选项 if ($(this).is('select') && $(this).val() === '') { allFilled = false; return false; // 跳出循环 } }); // 根据检查结果改变按钮的样式 // allFilled?$(btnEle).addClass('on'):$(btnEle).removeClass('on') } // 防抖函数 function debounce(func, wait, immediate) { var timeout; return function() { var context = this, args = arguments; var later = function() { timeout = null; if (!immediate) func.apply(context, args); }; var callNow = immediate && !timeout; clearTimeout(timeout); timeout = setTimeout(later, wait); if (callNow) func.apply(context, args); }; } // 节流 function throttle(func, delay) { let isThrottled = false; return function() { if (!isThrottled) { // 执行函数并设置isThrottled为true func.apply(this, arguments); isThrottled = true; setTimeout(() => { isThrottled = false; }, delay); } }; }