오늘도 삽질중

로그인2 (getting username) 본문

개발공부

로그인2 (getting username)

해빋 2021. 7. 5. 20:04

 

 

0

 

 

목표: 1. 아이디 입력 후 자연스레 login-form 사라지게 하기

        2. 동시에 h1태그에 "hello"+ id 나오게하기

 

 

방법: css로 숨겨주기

1
2
3
.hidden{
    display:none;
}
cs

 

html

1
2
3
4
5
6
7
8
9
 
<form id="login-form">
    <input required max-length="15" type="text" placeholder="what is your name?">
    <button>log In</button>
   
<h1 id="greeting" class="hidden"></h1>  
cs

일단 h1 greeting 태그는 숨겨줌

 

 

js

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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");
 
function onClickLogin(event){
    event.preventDefault();
    console.log(loginInput.value);
    loginForm.classList.add("hidden");
    greeting.classList.remove("hidden");
    greeting.innerText = `hello ${loginInput.value}`;
 
    
}
 
 
 
loginForm.addEventListener("submit", onClickLogin);
cs

 

<form을 submit하고 난 후, function에서 일어난 일>

 

7. 일단 submit의 기본동작을 저지

8. 내가 넣은 입력값을 콘솔에서 동시에 확인

9. 입력값을 넣는동시에 loginForm에서 "hidden" class가 추가되어 사라지게됨

10. loginFom이 사라지면서 greeting 에서는 "hidden" class가 제거되고

11. html에는 hello 입력값이 뜨게된다.

 

반복되는 코드가 있어 좀 더 깔끔히 코드를 정리하자면,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const loginInput = document.querySelector("#login-form input");
const loginButton = document.querySelector("#login-form button");
const greeting = document.querySelector("#greeting");
const HIDDEN_CLASSNAME = "hidden";
 
 
 
 
function onClickLogin(event){
    event.preventDefault();
    const username = loginInput.value;
    console.log(username);
    loginForm.classList.add(HIDDEN_CLASSNAME);
    greeting.classList.remove(HIDDEN_CLASSNAME);
    greeting.innerText = `hello ${username}`;
 
    
}
 
 
 
loginForm.addEventListener("submit", onClickLogin);
cs

 

완성!

 

 

 

업뎃할거 진짜 많다.. 짤 올리지 말고 코드나 올리자

 

Comments