$(function(){ $("#Main_Form").fromsAuth({type:'NONE'}); $("#Main_Form2").fromsAuth({type:'NONE'}); $(".forget-switch").on("click", ".switch-btn", function(){ let _this = $(this), target = _this.data("target") $(".switch-btn").removeClass("now") $(".forget-switch-block").removeClass("now") _this.addClass("now") $(".forget-switch-block[data-name='"+target+"']").addClass("now") }) //寄送簡訊or手機認證碼 $(".form-wrapper").on("click", "#SendCodeBtn, #CheckCode", function(){ let _this = $(this), id = _this.attr("id") wrapper = _this.parents(".form-wrapper"), method = wrapper.find(".form-switch-radio[name=LoginMethod]:checked").val(), val = ""; if($('#Name').val() == ''){ alert("請輸入姓名") return false; } if($('#Account').val() == ''){ alert("請輸入帳號") return false; } if(method == "UseEmail"){ val = wrapper.find("#Email").val() if(!val){ alert("請輸入E-mail") return false; } //E-mail驗證 var str_pos = val.indexOf("@"); var str_pos1 = val.indexOf("."); var str_len = val.length; var chk_str = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-_*"; let chk_eamil = false; if(str_pos != -1 && str_pos1 != -1) { for(var i= 0;i <= str_pos - 1;i++) { if(chk_str.indexOf(val.substring(i,i+1)) == -1) { alert("E-mail格式錯誤") return false; }; }; for(var i= str_pos + 1;i <= val.length - 1;i++) { if(chk_str.indexOf(val.substring(i,i+1)) == -1) { alert("E-mail格式錯誤") return false; }; }; chk_eamil = true; }; if(!chk_eamil){ alert("E-mail格式錯誤") return false; } }else if(method == "UseCellphone"){ val = wrapper.find("#Cellphone").val() if(!val){ alert("請輸入手機號碼") return false; } }else{ alert("請選擇驗證方式") return false; } if(id === "SendCodeBtn"){ $.ajax({ url: "/member/ajax/ajax_send_sms_code-p.php", method: "POST", dataType: "json", data: { name: $('#Name').val(), type: 'forget', method: method, val: val, account: $('#Account').val(), }, success: function(res){ switch(res.status){ case 'NO_TYPE': alert("資料錯誤,請重試"); break; case 'NO_NAME': alert("請輸入姓名"); break; case 'NO_ACCOUNT': alert("請輸入帳號"); break; case 'NO_METHOD': alert("請選擇驗證方式"); break; case 'NO_VAL': alert("請輸入手機號碼或E-mail"); break; case 'WRONG_CELLPHONE_FORMAT': alert("手機格式錯誤"); break; case 'ACCOUNT_NOT_EXIST': alert("您無法使用此功能的原因如下:\r\n1.您尚未成為會員,請註冊加入。\r\n2.您近日若有修改姓名,請來電04-22061234轉1381、1481由專人為您服務。"); break; case 'NAME_ERROR': alert('會員姓名錯誤'); break; case 'RET_REPLY': alert("認證碼已經發送過,請在剩餘時間內完成驗證"); wrapper.find(".form-verify-countdown").data("time",res.time) wrapper.find(".form-verify-time").text(res.text) timeout(wrapper, method); $('#CheckCode').show(); break; case 'RET_OVER': alert("今日已達上限次數"); break; case 'ERROR': alert("資料庫忙碌中"); break; case 'ACCOUNT_ERROR': alert("帳號錯誤(請確認英文字母大小寫是否正確)"); break; case 'OK': alert("認證碼已發送") wrapper.find(".form-verify-countdown").data("time",res.time) wrapper.find(".form-verify-time").text(res.text) timeout(wrapper, method); $("#SendCodeBtnSpan"+method).text('請收取認證碼'); $('#CheckCode').show(); break; } }, error: function(){ alert("網路連線過慢,網頁請重新整理") } }) }else if(id === "CheckCode"){ $.ajax({ url: '/member/ajax/ajax_check_code-p.php', method: 'POST', dataType: 'json', data: { type: 'forget', method: method, val: val, name: $('#Name').val(), account: $('#Account').val(), code: $('#SendCheck').val(), }, success: function(res){ switch(res.status){ case 'NO_NAME': alert("請輸入姓名"); break; case 'NO_ACCOUNT': alert("請輸入帳號"); break; case 'NO_METHOD': alert("請選擇驗證方式"); break; case 'NO_VAL': alert("請輸入手機號碼或E-mail"); break; case 'RET_OVER': alert("今日已達上限次數"); break; case 'CHECK_ERROR': alert("認證碼錯誤"); break; case 'ERROR': alert("資料庫忙碌中"); break; case 'OK': alert("驗證成功,請在時間內重新設定密碼!"); $('.step2').removeClass("form-hide"); break; } }, error: function(){ alert("網路連線過慢,網頁請重新整理") } }) } }) }) var counter; function timeout(wrapper, method){ let countdown = wrapper.find(".form-verify-countdown") time = countdown.data('time'), timebox = wrapper.find(".form-verify-time") if(!countdown.hasClass("active")){ countdown.addClass("active") counter = setInterval(function(){ time--; if(time <= 0) { $("#SendCodeBtnSpan"+method).text('再次發送'); countdown.removeClass('active'); clearInterval(counter); } var min = Math.floor(time/60), second = time - (min*60), pad = '00'; timebox.text(pad.substring(min.toString().length)+min+":"+pad.substring(second.toString().length)+second) },1000) } }