register.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. const btnRegister = document.querySelector('.btn-register');
  2. const btnLoginPage = document.querySelector('.btn-login');
  3. const btnUserProfile = document.querySelector('.btn-userProfile');
  4. const btnLogout = document.querySelector('.btn-logout');
  5. const registerPassword = document.querySelector('#register #password');
  6. const btnLoginPage_d = document.querySelector('.login-top .btn-login');
  7. const btnUserProfile_d = document.querySelector('.login-top .btn-userProfile');
  8. const btnLogout_d= document.querySelector('.login-top .btn-logout');
  9. registerPassword.addEventListener('keyup', registerByEnter);
  10. btnRegister.addEventListener('click', register);
  11. function registerByEnter(e) {
  12. if (e.keyCode === 13) {
  13. e.preventDefault();
  14. console.log('login!');
  15. register();
  16. }
  17. };
  18. function validateEmail(email) {
  19. const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  20. if(re.test(String(email).toLowerCase()) === false) {
  21. $('#register [name = "email"]').addClass('error');
  22. if( !$('.error-text').length ) {
  23. $('input.error').after('<p class="error-text" set-lan="html:errorEmail">請輸入正確E-mail</p>');
  24. }
  25. } else {
  26. $('#register [name = "email"]').removeClass('error');
  27. $('.error-text').remove();
  28. }
  29. return re.test(String(email).toLowerCase());
  30. }
  31. function validatePassword(psd) {
  32. if(psd.length >=4) {
  33. $('#register [name = "password"]').removeClass('error');
  34. $('.error-text').remove();
  35. return true;
  36. } else {
  37. $('#register [name = "password"]').addClass('error');
  38. if( !$('.error-text').length ) {
  39. $('input.error').after('<p class="error-text" set-lan="html:errorPsd">密碼至少為4個字元</p>');
  40. }
  41. return false;
  42. }
  43. }
  44. function register() {
  45. const userName = $('#register [name = "username"]').val();
  46. const email = $('#register [name = "email"]').val();
  47. const password = $('#register [name = "password"]').val();
  48. if(userName && validateEmail(email) && validatePassword(password)) {
  49. let userObj = {
  50. username: userName,
  51. email,
  52. password
  53. }
  54. console.log(userObj);
  55. const headers = {
  56. "accept": "application/json",
  57. "Content-Type": "application/json"
  58. }
  59. axios({
  60. method: 'post',
  61. url: 'https://www.choozmo.com:8887/register',
  62. headers: headers,
  63. data: userObj
  64. }).then(res => {
  65. console.log(res.data.msg);
  66. if(res.data.msg == 'ok') {
  67. let title = "註冊成功";
  68. if (lang == 'en') {
  69. title = "Register Successfully!"
  70. }
  71. Swal.fire({
  72. title: title,
  73. icon: 'success',
  74. text: res.data.msg,
  75. confirmButtonColor: '#3085d6',
  76. });
  77. window.setTimeout(() => {
  78. window.location.href = 'login.html';
  79. }, 2000);
  80. } else {
  81. let title = "註冊失敗";
  82. if (lang == 'en') {
  83. title = "Register failed!"
  84. }
  85. Swal.fire({
  86. title: title,
  87. icon: 'error',
  88. text: res.data.msg,
  89. confirmButtonColor: '#3085d6',
  90. });
  91. }
  92. }).catch(err => {
  93. console.log(err);
  94. })
  95. }
  96. }
  97. function loginControl() {
  98. btnLoginPage.style.display = 'block';
  99. btnLogout.style.display = 'none';
  100. btnUserProfile.style.display = 'none';
  101. btnLoginPage_d.style.display = 'block';
  102. btnLogout_d.style.display = 'none';
  103. btnUserProfile_d.style.display = 'none';
  104. }
  105. loginControl();