register.js 3.2 KB

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