123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374 |
- /*
- * 会员/管理员表单验证
- * add by pjh 20180612
- */
- (function($){
- $.ajaxSetup({
- headers: {
- 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
- }
- });
- /*
- * 函数作用:判断字段是否为空
- * 输入参数:1,id 输入字段id值
- * 输出参数:1,true 字段不为空
- 2,false 字段为空,进行错误提示
- */
- function valIfNull(id) {
- var obj = $('#'+id);
- var obj_error = $('#error_'+id);
- var obj_label = $('#label_'+id);
- if (!obj.val()) {
- obj_error.text('请输入'+$.trim(obj_label.text()));
- return false;
- }
- else {
- obj_error.html(' ');
- return true;
- }
- }
- /*
- * 函数作用:判断字段长度是否符合要求
- * 输入参数:1,id 输入字段id值
- 2,min 输入字段要求最小长度
- 3,max 输入字段要求最大长度
- 4,noTrim 字段长度判断是否需要去空
- * 输出参数:1,true 字段长度符合要求
- 2,false 字段长度不符合要求,进行错误提示
- */
- function valLength(id, min=null, max=null, noTrim=null) {
- var obj = $('#'+id);
- var obj_error = $('#error_'+id);
- // 是否去空,主要为密码字段
- if (noTrim) {
- length = obj.val().length;
- }
- else {
- length = obj.val().trim().length;
- }
-
- if (min && min > length) {
- obj_error.text('长度需大于'+min+'个字符');
- return false;
- }
- else if (max && max < length) {
- obj_error.text('长度需小于'+max+'个字符');
- return false;
- }
- else {
- obj_error.html(' ');
- return true;
- }
- }
- /*
- * 函数作用:判断字段格式是否符合要求
- * 输入参数:1,id 输入字段id值
- 2,format 字段要求格式
- * 输出参数:1,true 字段格式符合要求
- 2,false 字段格式不符合要求,进行错误提示
- */
- function valFormat(id, format) {
- var obj = $('#'+id);
- var obj_error = $('#error_'+id);
- var obj_label = $('#label_'+id);
- if (!format.test(obj.val())) {
- obj_error.text('请输入正确的'+$.trim(obj_label.text()));
- return false;
- }
- else {
- obj_error.html(' ');
- return true;
- }
- }
- /*
- * 函数作用:判断两个字段值是否相等
- * 输入参数:1,id1 判断字段1的id值
- 2,id2 判断字段2的id值
- * 输出参数:1,true 两个字段值相等
- 2,false 两个字段值不相等,并对id2字段进行错误提示
- */
- function valEqual(id1, id2) {
- var obj_label = $('#label_'+id1);
- var obj_error = $('#error_'+id2);
-
- if ($('#'+id1).val() != $('#'+id2).val()) {
- obj_error.text('与'+$.trim(obj_label.text())+'不一致');
- return false;
- }
- else {
- obj_error.html(' ');
- return true;
- }
- }
- // 验证会员账号
- function validate_name(id_name) {
- if (!valIfNull(id_name)) return false;
- if (!valLength(id_name, '', 25)) return false;
- return true;
- }
- // 验证密码
- function validate_pwd(id_pwd) {
- if (!valIfNull(id_pwd)) return false;
- if (!valLength(id_pwd, 6, 16, true)) return false;
- return true;
- }
-
- // 图片验证码
- function validate_captcha(id_captcha) {
- if (!valIfNull(id_captcha)) return false;
- return true;
- }
-
- // 验证确认密码
- function validate_pwd2(id_pwd, id_pwd2) {
- if (!valIfNull(id_pwd2)) return false;
- if (!valEqual(id_pwd, id_pwd2)) return false;
- return true;
- }
-
- // 验证手机号码
- function validate_mobile(id_mobile) {
- if (!valIfNull(id_mobile)) return false;
- if (!valFormat(id_mobile, /^1[3-9][0-9]{9}$/)) return false;
- return true;
- }
- // 验证电子邮箱
- function validate_email(id_email) {
- if (!valIfNull(id_email)) return false;
- if (!valFormat(id_email, /^\w+_*@\w+.\w+$/)) return false;
- return true;
- }
- // 按钮60s倒计时效果
- function countDown(id_btn) {
- var seconds = 60;
- var obj_btn = $('#'+id_btn);
- setTime (obj_btn, seconds);
-
- function setTime (obj_btn) {
- if (0 == seconds) {
- obj_btn.removeAttr('disabled');
- obj_btn.html('获取验证码');
- seconds = 60;
- return true;
- }
- else {
- obj_btn.attr('disabled', true);
- obj_btn.html('重新获取('+seconds+'s)');
- seconds--;
- }
- setTimeout( function () {
- setTime(obj_btn)
- }, 1000)
- }
- }
- // 根据手机号码或会员账号发送短信
- function sendSmsByMobileOrName(id_btn, id_name=null, id_mobile=null, id_captcha, name_templete) {
- if (id_name) {
- if (!validate_name(id_name)) return false;
- var val_name = $('#'+id_name).val();
- var error_id = id_name;
- }
- if (id_mobile) {
- if (!validate_mobile(id_mobile)) return false;
- var val_mobile = $('#'+id_mobile).val();
- var error_id = id_mobile;
- }
-
- var url = "/ajax/sendSmsByMobileOrName";
- $.post( url, { name: val_name, mobile: val_mobile, templete: name_templete}, function(data) {
- if (data.error) {
- $('#error_'+error_id).text(data.error);
- return false;
- }
- else if ('success' == data.result) {
- countDown(id_btn);
- return true;
- }
- else {
- $('#error_'+id_captcha).text(data.result);
- return false;
- }
- });
- return true;
- }
- // 根据会员账号返回手机号码
- function getMobileFromName(id_name, id_mobile) {
- var url = "/ajax/getMobileFromName";
- var val_name = $('#'+id_name).val();
-
- $.ajax({
- url: url,
- type: "post",
- data: { name: val_name },
- success: function(mobile) {
- $('#'+id_mobile).val(mobile);
- },
- error: function (XMLHttpRequest) {
- if (404 == XMLHttpRequest.status) {
- $('#error_'+id_name).text('会员账号不存在');
- $('#'+id_mobile).val('');
- }
- }
- });
- return true;
- }
- var obj_btn_submit = $('#btn_submit');
- var obj_form_submit = $('#form_submit');
- var id_btn_sendSms = 'btn_sendSms';
- if ( '登录' == obj_btn_submit.val() ) {
- $('#name').blur( function() {
- if (!validate_name('name')) return false;
- });
- $('#password').blur( function() {
- if (!validate_pwd('password')) return false;
- });
- $('#captcha').blur( function() {
- if (!validate_captcha('captcha')) return false;
- });
- // 登录提交
- obj_btn_submit.click( function() {
- if (!validate_name('name')) return false;
- if (!validate_pwd('password')) return false;
- if (!validate_captcha('captcha')) return false;
- obj_form_submit.submit();
- });
- }
- else if ( '注册' == obj_btn_submit.val() ) {
- $('#name').blur( function() {
- if (!validate_name('name')) return false;
- });
- $('#password').blur( function() {
- if (!validate_pwd('password')) return false;
- });
- $('#password2').blur( function() {
- if (!validate_pwd2('password', 'password2')) return false;
- });
- $('#mobile').blur( function() {
- if (!validate_mobile('mobile')) return false;
- });
- $('#captcha').blur( function() {
- if (!validate_captcha('captcha')) return false;
- });
- // 发送短信
- $('#'+id_btn_sendSms).click( function() {
- if (!sendSmsByMobileOrName('btn_sendSms', '', 'mobile', 'captcha', 'register'))
- return false;
- });
- // 注册提交
- obj_btn_submit.click( function() {
- if (!validate_name('name')) return false;
- if (!validate_pwd('password')) return false;
- if (!validate_pwd2('password', 'password2')) return false;
- if (!validate_mobile('mobile')) return false;
- if (!validate_captcha('captcha')) return false;
- obj_form_submit.submit();
- });
- }
- else if ( '修改密码' == obj_btn_submit.val() ) {
- $('#old_password').blur( function() {
- if (!validate_pwd('old_password')) return false;
- });
- $('#password').blur( function() {
- if (!validate_pwd('password')) return false;
- });
- $('#password2').blur( function() {
- if (!validate_pwd2('password', 'password2')) return false;
- });
- // 修改密码提交
- obj_btn_submit.click( function() {
- if (!validate_pwd('old_password')) return false;
- if (!validate_pwd('password')) return false;
- if (!validate_pwd2('password', 'password2')) return false;
- obj_form_submit.submit();
- });
- }
- else if ( '修改手机' == obj_btn_submit.val() ) {
- $('#mobile').blur( function() {
- if (!validate_mobile('mobile')) return false;
- });
- // 发送短信
- $('#'+id_btn_sendSms).click( function() {
- if (!sendSmsByMobileOrName('btn_sendSms', '', 'mobile', 'captcha', 'mobile'))
- return false;
- });
- // 修改手机提交
- obj_btn_submit.click( function() {
- if (!validate_mobile('mobile')) return false;
- });
- }
- else if ( '修改邮箱' == obj_btn_submit.val() ) {
- $('#email').blur( function() {
- if (!validate_email('email')) return false;
- });
- // 修改邮箱提交
- obj_btn_submit.click( function() {
- if (!validate_email('email')) return false;
- obj_form_submit.submit();
- });
- }
- else if ( '重置密码' == obj_btn_submit.val() ) {
- $('#name').blur( function() {
- if (!validate_name('name')) return false;
- if (!getMobileFromName('name', 'mobile')); return false;
- });
- $('#password').blur( function() {
- if (!validate_pwd('password')) return false;
- });
- $('#password2').blur( function() {
- if (!validate_pwd2('password', 'password2')) return false;
- });
- $('#captcha').blur( function() {
- if (!validate_captcha('captcha')) return false;
- });
-
- // 发送短信
- $('#'+id_btn_sendSms).click( function() {
- if (!sendSmsByMobileOrName('btn_sendSms', 'name', '', 'captcha', 'password'))
- return false;
- });
- // 重置密码提交
- obj_btn_submit.click( function() {
- if (!validate_name('name')) return false;
- if (!getMobileFromName('name', 'mobile')) return false;
- if (!valIfNull('mobile')) return false;
- if (!validate_captcha('captcha')) return false;
- if (!validate_pwd('password')) return false;
- if (!validate_pwd2('password', 'password2')) return false;
- obj_form_submit.submit();
- });
- }
- })(jQuery);
|