Dev/JavaScript
[JaveScript] Momentum App - 1.Login - Input Value, Form Submission, Events
코딩삐약
2022. 4. 28. 11:08
//recap
const loginInput = document.querySelector("#login-form input");
const loginButton = document.querySelector("#login-form button");
function onLoginBtnClick() {
const username = loginInput.value;
if(username === ""){
alert("Please write your name.");
} else if(username.length > 15){
alert("Your name is too long.");
}
}
loginButton.addEventListener("click", onLoginBtnClick);
// preventDefault() 이해
const loginForm = document.querySelector("#login-form");
const loginInput = document.querySelector("#login-form input");
const link = document.querySelector("a");
function onLoginSubmit(event) {
event.preventDefault();
const username = loginInput.value;
console.log(event);
}
function handleLinkClick(event){
event.preventDefault(); // 브라우저 기본 동작 막기
console.dir(event);
alert("clicked!");
}
//submit 감지
loginForm.addEventListener("submit", onLoginSubmit);
link.addEventListener("click", handleLinkClick);
/* handleLinkClick(); = 이벤트 리스너 안의 함수는 내가 실행하는 것이 아니라
브라우저가 해주는것.
JS는 함수를 실행시키는 동시에 그 함수에 첫번째 인자로 object를 넣어줌
이 object에는 방금 일어난 event에 대한 여러 정보가 담겨있다.
이건 JS가 자동으로 해주는 것
handleLinkClick({information about the event that just happened})
이 argument는 handleLinkClick을 위한 EventListener 함수의 첫번째 인자로 주어지게 됨
우리는 그 인자를 받는 공간을 만들어주기만 하면 된다.
*/
// CSS "hidden" className으로 숨기고 나타내기
const loginForm = document.querySelector("#login-form");
const loginInput = document.querySelector("#login-form input");
const greeting = document.querySelector("#greeting");
const HIDDEN_CLASSNAME = "hidden";
function onLoginSubmit(event) {
event.preventDefault();
const username = loginInput.value;
console.log(username);
loginForm.classList.add(HIDDEN_CLASSNAME);
greeting.classList.remove(HIDDEN_CLASSNAME);
greeting.innerText = `Hello ${username}`;
// ``backtick(백틱) 사용해서 String 안에 변수값 넣기
}
//submit 감지
loginForm.addEventListener("submit", onLoginSubmit);
// style.css
.hidden {
display: none;
}