[바닐라 JS로 크롬 앱 만들기] # 4.0 Input Values

Gata·2023년 11월 27일
post-thumbnail
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>Momentum App</title>
</head>
<body>
    <div id="login-form">
        <input value="lalala" type="text" placeholder="What is your name?" />
        <button>Log In</button>
    </div>
    <script src="app.js"></script>
</body>
</html>

HTML의 element인 id="login-form" 를 JavaScript에 가져오는 방법.

방법 1) querySelector 이용하기

const loginForm = document.querySelector("#login-form"); // '#' 해시태그 필요

방법 2) getElementById 이용하기

const loginForm = document.getElementById("login-form"); // '#' 해시태그 필요 없음

const loginForm로 변수 선언을 해줬으니 변수 loginForm을 이용하면 document가 아닌<div id="login-form> 안에서 input과 button을 바로 찾을 수 있다.

const loginForm = document.querySelector("#login-form");
//html의 login-form을 찾음
const loginInput = loginForm.querySelector("input");
//document가 아닌 loginForm 안에서 바로 찾는다.
const loginButton = loginForm.querySelector("button"); 

위의 코드를 아래 처럼 줄일 수 있다.
⬇️⬇️⬇️

const loginInput = document.querySelector("#login-form input");
const loginButton = document.querySelector("#login-form button");

"What's your name" input에 입력한 값(user name)을 가져오고 싶다. input의 내용을 가져오려면 콘솔창에서 어떤 property를 찾아봐야 하는지 알아야 한다. console.dir()로 알아보기

function onLoginBtnClick() {
    console.dir(loginInput);
    console.log("click!!!!");
}

loginButton.addEventListener("click", onLoginBtnClick);

input에 아무 값("lalala")를 고의적으로 넣어서 property명을 알 수 있다. property명은 value다.


콘솔창에 user name 출력하기

console.log(loginInput.value);

user name(gata) 입력 후 Log In(click) button 누르기

console창에 gata가 출력됨

근데 만약, 아무값도 입력하지 않고 click button을 누르면 어떻게 될까?

click 버튼을 누르는 만큼 console창에 뜬다.

하지만 내가 원하는 건 user가 이름을 입력했을 때만 button을 클릭할 수 있도록 하는 것이다.

다음 글에서는 user name의 유효성 검사에 대해 알아보려고 한다.

profile
개발은 즐거워🪇

0개의 댓글