<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();
})
This Pen doesn't use any external CSS resources.