<form action="" class="form">
  帳號:
  <input type="text" class="acc">
  <br>
  密碼:
  <input type="text" class="pass">
  <br>
  <input type="button" value="送出" class="send">
</form>
//註冊功能 傳送post資料做驗證
//DOM
const account = document.querySelector(".acc");
const password = document.querySelector(".pass");
const form = document.querySelector(".form");
const send = document.querySelector(".send");

//把axios post請求用函式封裝起來等待click事件發生後,才觸發post請求驗證
const requestData = function () {
  //做錯誤判斷
  if(account.value === "" || password.value === "") {
    alert('輸入資料不可為空,請重新輸入');
    form.reset();
    return;
  } 
  //擷取使用者註冊資料
  let obj = {};
  obj.email = account.value;
  obj.password = password.value;
  //axios送出post請求
  axios
    .post("https://hexschool-tutorial.herokuapp.com/api/signup", obj)
    .then((response) => {
      if(response.data.message === "帳號註冊成功") {
        console.log(obj)
        alert("恭喜帳號註冊成功");
      } else {
        alert("帳號註冊失敗,不可重複註冊相同帳號!")
      }
      form.reset();
    })
    .catch((err) => {
      console.err(err);
    });
};

//當使用者在欄位輸入資料時,按下送出後
//才發生註冊資料-請求(evevt-click)
send.addEventListener('click', (e) => {
  e.preventDefault();
  //obj要作為post的參數送出去驗證
  requestData();
})

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/axios/1.1.3/axios.min.js