The Web Developer 부트캠프 2022

JS 폼 활용

거위발바닥 2022. 9. 23. 20:18
tweetForm.addEventListener('submit', function (e) {
    alert("SUBMIT~!!")
    e.preventDefault();
}) // form안에 있는 버튼을 눌러서 submit 이벤트를 하면 alert이 뜨는 이벤트인데, 
   // form안에 있기때문에 데이터를 보내는 action을 실행한다. 이것을 막기 위해서 
   // e.preventDefault() 코드를 넣으면 해당 submit이하는 기본적인 event를 막는다.

해당 기능을 사용하려면 function안에 객체가 있어야 한다. 

    const usernameInput = document.querySelectorAll('input')[0];
    const tweetInput = document.querySelectorAll('input')[1];   
    console.log(usernameInput.value, tweetInput.value);
    // 위의 코드는 변수를 정한다음 해당 변수의 value 값을 불러오는 방식
    // 아래의 코드는 form id의 elements의 name에서 value를 불러오는 방식
    console.log(tweetForm.elements.username.value);
    console.log(tweetForm.elements.tweet.value);

만약 input에 i hate you 를 작성했으면 해당 value값은 "i hate you" 가 된다.

두 방법중 아래 코드의 방식이 더 좋다.

 

const tweetForm = document.querySelector('#tweetForm');
const tweetsContainer = document.querySelector('#tweets'); // ul을 id로 지정해서 변수처리

tweetForm.addEventListener('submit', function (e) {
    e.preventDefault();
    const usernameInput = tweetForm.elements.username;
    const tweetInput = tweetForm.elements.tweet;
    addTweet(usernameInput.value, tweetInput.value);
    usernameInput.value = ''; // 입력이후 빈칸
    tweetInput.value = '';
})

const addTweet = (username, tweet) => {
    const newTweet = document.createElement('li'); // il 태그
    const bTag = document.createElement('b'); // bold 태그
    bTag.append(username) // bold 태그에 usernameInput.value 추가
    newTweet.append(bTag); // li에 bTg 추가
    newTweet.append(`- ${tweet}`) // 이후 tweet 추가
    tweetsContainer.append(newTweet); // ul에 위에서 입력한 li와 b 추가
}

완성된 username과 tweet의 내용을 적으면 html에 화면이 업데이트되는 코드이다. 

'The Web Developer 부트캠프 2022' 카테고리의 다른 글

JS 이벤트 버블링  (0) 2022.09.23
JS 폼 활용 연습, input, change 이벤트  (1) 2022.09.23
JS 이벤트 객체와 keydown  (0) 2022.09.23
JS addEventListener  (0) 2022.09.23
JS CSS STYLE, classList  (0) 2022.09.23