
💁♀️ WHY 웹사이트 창에
?가 붙을까?
🔎 querySelector : classname, tagname 모두 검색 가능 -> 대상이 id인지 class인지 명확할 것
🔎 getElementById : ID 만 가져옴
const loginForm = document.getElementById("login-form");
const loginInput = loginForm.querySelector("input");
const loginButton = loginForm.querySelector("button");
const loginInput = document.querySelector("#login-form input");
const loginButton = document.querySelector("#login-form button");
: 어떤 이벤트의 기본 행동이든지 발생되지 않도록 막는 것
const link = document.querySelector("a");
function handleLinkClick(event){
event.preventDefault(); // event는 멈추게 되고 아무것도 진행되지 않을 것
};
link.addEventListener("click", handleLinkClick);
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>Momemtum</title>
</head>
<body>
<form id="login-form" class="hidden">
<input required maxlength="15" type="text" placeholder="Whar is your name?">
<button>Log In</button>
</form>
<h1 id="greeting" class="hidden"></h1>
<script src="app.js"></script>
</body>
</html>
.hidden {
display: none;
}
const loginForm = document.getElementById("login-form");
const loginInput = document.querySelector("#login-form input");
const loginButton = document.querySelector("#login-form button");
const greeting = document.querySelector('#greeting');
const HIDDEN_CLASSNAME = 'hidden';
const USERNAME_KEY = "username"
function OnLoginSubmit(evnt) {
evnt.preventDefault();
loginForm.classList.add(HIDDEN_CLASSNAME);
const username = loginInput.value;
localStorage.setItem(USERNAME_KEY, username);
paintGreetings(username);
};
function paintGreetings(username) {
greeting.innerText = `Hello, ${username}`;
greeting.classList.remove(HIDDEN_CLASSNAME);
}
const savedUserName = localStorage.getItem(USERNAME_KEY);
if (!savedUserName) {
//show the form
loginForm.classList.remove(HIDDEN_CLASSNAME);
loginForm.addEventListener("submit", OnLoginSubmit);
} else {
// show the greetings
paintGreetings(savedUserName);
};
🌟 문제점
html-input에서의 required 적용 안됨 -> JS에서 Nan 확인
NaN 확인시number === NaN과 같이 비교X
https://codesandbox.io/s/empty-blueprint-forked-shf79n?file=/src/index.js

